이 문제에서 사용한 알고리즘은 그리디 알고리즘입니다. 그리디 알고리즘은 매 순간 최적의 선택을 하는 알고리즘으로, 이번 문제에서도 쿠폰을 최대한 빨리 적게 사용하여 받을 수 있는 서비스 치킨의 수를 최대화하는 것이 그리디 알고리즘의 아이디어입니다. 코드에서도 쿠폰을 10장씩 사용하여 받을 수 있는 서비스 치킨의 수를 최대화하도록 구현되어 있습니다.
class Solution {
public int solution(int chicken) {
int coupon = chicken;
int free_chicken = 0;
while (coupon >= 10) {
free_chicken += coupon / 10;
coupon = coupon % 10 + coupon / 10;
}
return free_chicken;
}
}