[Kotlin/피자 나눠 먹기(3)]

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

 

풀이

class Solution {
    fun solution(slice: Int, peoples: Int): Int {
        var answer: Int = 1
        while((answer*slice)/peoples < 1){
            answer++
        }
        return answer
    }
}

 

처음에 if > if > if 루투를 타는 조건문을 만들었다가 오류가 발생해서

while 문으로 작성했습니다. 다른 사람들의 풀이를 보니 더욱 깔끔한 풀이가 많아서 살짝 부끄럽기도 하네요.. !

 

문제의 핵심은 n 명의 사람이 최소 한 조각 이상의 피자를 먹어야 한다는 것.

여기서 변수 answer은 피자 판 수 라고 생각하고 초기화 값을 '1' 로 하였습니다.

(당연히 피자를 먹으려면 최소 한 판은 시켜야 합니다.)

 

공식 : (피자 판 수 x 피자 조각) / 사람수 > 1 이상이어야 성립

만약 몫이 1 미만이라면, 한 사람 당 피자 한 조각씩 먹을 수 없는 상황이기 때문에

피자를 추가 주문 하면 됩니다.

 

아래 예시를 참고해주세요.

 

1. slice 5, peoples 2

→ 피자는 한 판(총 5 조각), 사람은 2명 : 통과 (모두 한 조각 이상 먹을 수 있음)

 

2. slice 3, peoples 7

→ 피자는 한 판(총 3조각), 사람은 7명 : 문제 발생 (무려 4명이나 피자를 못 먹는 사태 발생)

그럼 피자 한판을 더 추가해줍니다.

→ 피자는 두 판(총 6조각), 사람은 7명 : 문제 발생 (한 명이 굶게 생겼습니다)

또 한판을 추가 합니다.

→ 피자는 세 판(총 9조각), 사람은 7명 : 통과 (모두 한 조각씩 먹을 수 있게되었습니다.)

 

 

 

저는 이런식으로 문제 푸는 방법을 생각 했고, 피자 판 수 를 늘리는 거에 초점을 맞췄습니다.

그래서 탄생한게 위 풀이! 너무 복잡한가요? ㅎㅎ,,