티스토리 뷰
피자 한판에 6조각
n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 하기 때문에
최소공배수를 구하는것을 응용하면 되는 것 같았다.
그러니까,
10명이 모두 같은 양의 피자를 먹기 위해서는 10명 과 6조각의 최소공배수인 30 조각의 피자가 필요하다.
30조각의 피자를 6으로 나누어 피자 다섯판이 필요하다고 출력되야 하는 것이다.
4명이 같은 양의 피자를 먹기위해서는 4와 (4명) 6의 (6조각) 최소공배수인 12조각이 필요하다.
12조각은 피자 2판이므로 2판이 출력되어야 한다.
필요한 피자판은 while문을 사용해서 구한다.
쉽게 풀어 써보자면
4명이 같은 양의 피자를 먹어야 할때를 예시로 들겠다.
첫번째 턴) pizza = 1; pizza * 6 = 6 , 6 % 4 로 나눔 0이 아니네 피자 한판더 추가 pizza=2
두번째 턴) pizza = 2; pizza *6 = 12, 12%4 로 나누면 나머지가 0이네! 피자 두판 필요하네,, 리턴 피자 두판이야
이런느낌입니다.
파이썬 풀이
def solution(n):
pizza = 1
while((pizza*6)%n)!=0:
pizza += 1
return pizza
자바 풀이
class Solution {
public int solution(int n) {
int pizza = 1;
while(((pizza *6)%n)!=0){
pizza ++;
}
return pizza;
}
}
'programmers' 카테고리의 다른 글
[프로그래머스] n의 배수 고르기 (0) | 2023.11.20 |
---|---|
[프로그래머스] 피자 나눠먹기(3) (0) | 2023.11.19 |
[프로그래머스] 피자 나눠먹기 (1) (0) | 2023.11.19 |
[프로그래머스] 순서쌍의 개수 (0) | 2023.11.19 |
[프로그래머스] 배열 자르기 (0) | 2023.11.19 |