CodingTest/Programmers

피자 나눠 먹기(3) [프로그래머스 코딩테스트 입문]

Hojung7 2025. 1. 9. 15:25

문제 설명

 

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

 

 

 제한 사항

  • 2 ≤ slice ≤ 10
  • 1 ≤ n ≤ 100

 

 입출력 예

slice n result
7 10 2
4 12 3

 

 

 

 입출력 예 설명

 

입출력 예 #1
10명이 7조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 2판을 시켜야 합니다.

 

입출력 예 #2
12명이 4조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 3판을 시켜야 합니다.

 

 

 

 풀이

 

1. n / slice 한 판으로 몇 명이 먹을 수 있는지 계산해줍니다.

 

2. Math.ceil 결과를 올림하여 필요한 최소 판 수를 구해줍니다.

 

3. Math.ceil은 double을 반환하므로 int로 변환하여 answer에 저장 후 반환해줍니다.

 

💡기본 산술 연산자 복습

연산/메서드 설명 사용 예시 반환형
+ 두 값을 더함 3 + 5 피연산자 중 더 큰 타입
- 두 값을 뺌 10 - 4 피연산자 중 더 큰 타입
* 두 값을 곱합 2 * 3 피연산자 중 더 큰 타입
/ 두 값을 나눔(정수일 경우 소수점 버림) 5 / 2 피연산자 중 더 큰 타입
% 나머지를 구함 5 % 2 피연산자 중 더 큰 타입
Math.ceil 값을 올림 Math.ceil(2.3) double
Math.floor 값을 내림 Math.floor(2.7) double
Math.round 소수점 첫째 자리에서 반올림 Math.round(2.5f) long (double 입력 시), int (float 입력 시)
Math.abs 절대값 반환 Math.abs(-10) 입력값의 타입과 동일
Math.max 두 값 중 큰 값 반환 Math.max(3,4) 입력값의 타입과 동일
Math.min 두 값 중 작은 값 반환 Math.min(3, 5) 입력값의 타입과 동일
Math.pow 거듭제곱 반환 Math.pow(2, 3) double
Math.sqrt 제곱근 반환 Math.sqrt(16) double
Math.random 0.0 이상 1.0 미만의 난수 반환 Math.random() double
Math.log 자연 로그 반환 Math.log(2.71828) double
Math.exp 자연 상수 ee의 거듭제곱 반환 Math.exp(1) double
Math.signum 숫자의 부호 반 Math.signum(-5) double