본문 바로가기
Coding Test/프로그래머스

[Java] 피자 나눠 먹기 (2)

by 노 코딩 노 라이프 2024. 2. 2.

문제설명

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

 

제한사항

1 ≤ n ≤ 100


입출력 예

 

입출력 예 설명

입출력 예 #1

  • 6명이 모두 같은 양을 먹기 위해 한 판을 시켜야 피자가 6조각으로 모두 한 조각씩 먹을 수 있습니다.

입출력 예 #2

  • 10명이 모두 같은 양을 먹기 위해 최소 5판을 시켜야 피자가 30조각으로 모두 세 조각씩 먹을 수 있습니다.

입출력 예 #3

  • 4명이 모두 같은 양을 먹기 위해 최소 2판을 시키면 피자가 12조각으로 모두 세 조각씩 먹을 수 있습니다.

코드 설명

💡 6의 배수 중에서 n으로 나누어 떨어지는 가장 작은 수를 찾는 방식으로 동작하도록 만들어보겠습니다.

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;
	}
}

여기서 i는 1부터 6 * n까지의 숫자를 순회하며,
6 * in으로 나누어 떨어질 때 해당 숫자 ianswer에 저장하고 반복문을 종료합니다.

 

코드의 간단한 동작 순서는 

  1. i가 1부터 6 * n까지 반복됩니다.
  2. 각 i에 대해 6 * i를 n으로 나누었을 때 나머지가 0이면, 즉 6의 배수이며 n으로 나누어 떨어지면 answer에 현재의 i 값을 저장하고 반복문을 종료합니다.
  3. 최종적으로 찾은 answer를 반환합니다.

 


소스코드&결과

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;
	}
}

 

'Coding Test > 프로그래머스' 카테고리의 다른 글

[Java] 문자열 뒤집기  (0) 2024.03.17
[Java] 문자열 잘라서 정렬하기  (0) 2024.03.13
[MySQL] 어린 동물 찾기  (0) 2023.12.06
[JavaScript] 멘토링  (0) 2023.11.25
[MySQL] 상위 n개 레코드  (2) 2023.11.15