프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
chicken은 정수입니다.
0 ≤ chicken ≤ 1,000,000
chicken을 10으로 나누면 서비스로 받는 치킨 (서비스로 받는 치킨도 쿠폰을 받는다) 10의 배수가 아닌 나머지 치킨수의 쿠폰을 받아서 저장. 남은 쿠폰을 저장해서 다시 10의 배수가 되면 서비스 치킨에 포함시키기..?
class Solution {
public int solution(int chicken) {
int answer = 0;
int service = 0;
while(true){
service = chicken / 10;
//10장 채워 받은 서비스 치킨의 수
chicken = (chicken%10) + service;
//10장 채우지 못한 쿠폰수 + 10장채워 받은 서비스 치킨의 쿠폰
answer += service;
if(chicken < 10){
break;
}
}
return answer;
}
}
서비스로 받는 치킨도 쿠폰에 저장해줘야 하는게 어려웠다.
처음엔 변수를 coupon으로 했다가 더 헷갈려서 service로 바꿨다.
매번 for문만 쓰다가 while써봤는데 더 깔끔한 느낌.