<문제 제시>
머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다.
피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해
필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
<예시 입출력>
<문제 해결 과정>
피자를 일곱조각으로 나눈다는 것은 고정 조건이다. 이제 나눠먹을 사람의 수가 주어지는데,
모든 사람이 한 조각 이상씩 먹기 위해서는 최소 한 판(7조각)이상이어야하며,
만약 1명이 주어진다면 최소 한 조각을 먹기위해서 한 판(1조각) (+6조각 남음)이 필요하다.
사람의 수에서 7조각 수(한 판)를 나누면 최소 먹을 수 있는 판 수가 나온다.
사람의 수는 n % 7로 남은 조각 수를 갱신해준다.
이 n의 나머지가 0이면 사람의 수에 딱 맞게 피자 판 수가 나누어 떨어진다는 것이다.
만약 n의 나머지가 0이 아니면 못먹은 사람이 있는 경우이므로 한 판을 더 시켜야한다. >> answer++;
if(n != 0) answer++;
<전체코드>
//#. 피자 나눠 먹기 (1)
/* <문제설명>
머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다.
피자를 나눠먹을 사람의 수 n이 주어질 때,
모든 사람이 피자를 한 조각 이상 먹기 위해
필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
*/
public class divide_pizza {
public static int solution(int n) {
int answer = 0;
answer = n / 7;
n = n % 7;
System.out.println("최소 한 조각씩 먹기 위한 피자 판 수 = " + answer);
System.out.println("최소 한 조각씩 나눠주고 남은 피자 수 = " + n);
if(n != 0) answer++;
return answer;
}
}
피자를 나눠 먹는 경우의 수를 최소 한 조각으로 제한하니, 못먹은 사람에게 제공할 피자를 처리하는 방법이 중요해졌다.
단순히 피자 판 수를 한 판 늘려(answer++) 제공하면 최소 한 조각 이상 먹을 수 있게되므로
이 방법으로 해결할 수 있었다.
문제링크)
https://school.programmers.co.kr/learn/courses/30/lessons/120814
'Algorithms > 프로그래머스' 카테고리의 다른 글
[프로그래머스] '피자 나눠 먹기 (3)' - Java (0) | 2022.12.20 |
---|---|
[프로그래머스] '피자 나눠 먹기 (2)' - Java (0) | 2022.12.20 |
[프로그래머스] '배열의 평균값' - Java (0) | 2022.12.19 |
[프로그래머스] '두 수의 나눗셈' - Java (0) | 2022.12.18 |
[프로그래머스] '종이 자르기' - Java (0) | 2022.12.18 |