Programers코테연습(Java)

[Programmers TIL 4일차] 피자 나눠 먹기(2)

코철이 2024. 4. 22. 21:05

1. 문제

 

머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.


제한사항

1 ≤ n ≤ 100

 

 

2. 풀이

class Solution {
    public int solution(int n) {
        int answer = 0;
        int pizza = 6;
        
        while(pizza%n != 0){
            pizza += 6;
        }
        
        answer = pizza/6;
        
        return answer;
    }
}

 

  • 피자는 항상 6조각으로 잘라준다. 
  • 피자를 나눠 먹을 사람 수는 n
  • n명이 피자를 남기면 안됨
  • 모두 같은 수의 피자 조각을 먹어야 함
  • 최소 몇 판 을 시켜야 하는지 반환

int pizza = 6;으로 pizza의 조각은 6조각임을 선언하고, 

 

while(pizza % n != 0)  pizza조각 6을 n으로 나눈 나머지 값이 0이 아님이 false값이 나타날때 까지 

 

pizza += 6; 6조각 씩 추가하는 것으로 반복한다.

 

만약 피자를 나눠 먹을 사람 수 n이 10명이라면 while문을 통해 (pizza % 10 != 0)의 조건식이 False가 될 때 까지 

pizza += 6;을 반복한다.

피자 조각pizza % 사람 수 n != 0 참/거짓
6  %  10  != 0 True
12 % 10 != 0 True
18 % 10 != 0 True
24 % 10 != 0 True
30 % 10 != 0 False

 

위 처럼 반복을 하게 된다.

 

그리고 여기서 pizza를 피자조각으로 놓고 구했으니 피자 한 판으로 따져야하니 pizza /6을하여 한 판의 값을 구해서 answer 에 넣고 answer을 반환해준다.