티스토리 뷰

programmers

[프로그래머스] 피자나눠먹기 (2)

대장형아 2023. 11. 19. 19:08

피자 한판에 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;
    }
}

 

 

 

«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
최근에 올라온 글
Total
Today
Yesterday