코딩테스트 회고록/코테_Java
[JAVA] 프로그래머스 - 피자 나눠 먹기 (3)
iamjisu
2023. 3. 31. 00:37
프로그래머스 코딩테스트 연습 입문단계 '피자 나눠 먹기 (3)'
https://school.programmers.co.kr/learn/courses/30/lessons/120816
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
❓ 문제 설명
머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
※ 아래 입출력 예시를 참고하세요!
⚠️ 제한사항 및 입출력 예시
- 2 ≤ slice ≤ 10
- 1 ≤ n ≤ 100
입력 (slice, n)
7 10
출력 (return 값)
2
// 10명이 7조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 2판을 시켜야 합니다.
✏️ 직접 구현한 코드
class Solution {
public int solution(int slice, int n) {
int minPizza = slice;
while(minPizza < n) {
minPizza += slice;
}
return minPizza/slice;
}
}
🗣️ 코드 설명
- slice와 같은 값을 가진 minPizza가 n보다 작을 때까지 반복하는 while문을 만들었습니다.
- while문 안에서는 slice와 minPizza를 더했습니다. n보다 작을 때까지 계속 더하게 되는 것이죠.
- 사람 수인 n보다 큰 값이 되어 while문을 빠져나온 minPizza를 slice값으로 나누면 몇 판인지 알 수 있습니다.
🔥 다른 사람의 코드
class Solution {
public int solution(int slice, int n) {
return n % slice > 0 ? n/slice+1 : n/slice;
}
}
삼항 연산자를 이용해 한 줄로 코드를 작성했네요..😯
이 분은 n을 slice로 나눈 나머지가 0보다 크면, n을 slice로 나눈 몫에 1을 더한 값을 return하고,
0과 같으면, n을 slice로 나눈 몫을 return 하도록 했습니다.
저도 이렇게 난이도가 낮은 문제들은 제어문을 최대한 덜 사용하고,
/와 % 연산자를 더 활용해 봐야겠습니다!! :)