728x90
[문제 설명]
프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
[입출력 예]
chicken | result |
100 | 11 |
1,081 | 120 |
[차근 차근 생각해보기]
- 쿠폰 10장 당 치킨 1마리가 서비스로 주어지므로 -> 서비스는 쿠폰 / 10
- 서비스로 사용한 쿠폰의 나머지와 서비스로 받은 치킨을 합해서 다시 계산해야함.
- 이때 처음 쿠폰을 사용할땐 그동안 시켜먹은 치킨이 쿠폰의 개수가 됨.
[코드]
class Solution {
public int solution(int chicken) {
int coupon = chicken; // 처음 사용할 쿠폰의 개수
int answer = 0;
while (coupon >= 10) { // 쿠폰이 10장 이상이어야 서비스를 받을 수 있음
int service = coupon / 10;
answer += service;
coupon = (coupon % 10) + service;
}
return answer;
}
}
[반성할 점]
조건을 차근 차근 생각해보며 문제를 풀어야 하는데
머리속에서 먼가 꼬여서 조건을 잘 파악하지 못했던 문제이다.
시간이 오래 걸리더라도 차근차근 생각해보고 급하게 마음 먹지 않기!
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 프로세스 (0) | 2023.12.13 |
---|---|
[프로그래머스] - 모의고사 (0) | 2023.12.13 |
[프로그래머스] - 왼쪽 오른쪽 (0) | 2023.09.20 |
[프로그래머스] - ad 제거하기 (0) | 2023.07.12 |
[프로그래머스] - 5명씩 (0) | 2023.07.04 |