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

김엄지·2024년 4월 16일

알고리즘

목록 보기
39/90

🐤 목표

앞으로 매일 꾸준히 코딩테스트를 진행하면서 단계를 높여가보자.

문제 설명

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

제한사항

1 ≤ n ≤ 100

입출력 예

문제 풀이

class Solution {
    public int solution(int n) {
        
        int answer = 0;
		for (int i = 1; i <= 6 * n; i++) {
			if (6 * i % n == 0) {
				answer = i;
				break;
			}
		}
		return answer;
    }
}

최소 판 수(answer)는 각 피자판(i) 마다 한명의 사람이 먹게 되는 피자 조각 수가 인원수(n)로 나누어 떨어지는지 확인하여 구한다.

1) 반복문으로 피자판 수를 하나씩 증가시킨다. 각 피자판에는 6개의 조각이 있으므로, i를 1부터 6n까지 반복한다.
2) 각 피자판(i)마다 피자 조각 수를 인원 수로 나눈 나머지를 확인해서 나머지가 0이라면 현재 피자의 조각 수로 모든 사람이 동일한 양을 먹을 수 있다.
3) 나머지가 0이라면, 현재 피자 조각 수(i)를 최소 피자판 수로 선택하고 종료한다.

마무리

모든 경우의 수를 확인하기 위해서 1부터 6n까지 검사하기 때문에 성능이 좋지 않을 수 있다. 하지만 다른 방법으로는 테스트를 통과하지 못해서 고민을 해보야겠다.


참고한 풀이
https://velog.io/@osy8814/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4JAVA%ED%94%BC%EC%9E%90-%EB%82%98%EB%88%A0-%EB%A8%B9%EA%B8%B02

profile
나만의 무언가를 가진 프로그래머가 되자

0개의 댓글