프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
chicken | result |
---|---|
100 | 11 |
1,081 | 120 |
def solution(chicken):
coupon = 0
while True:
service = chicken // 10
chicken = chicken - (10*service) + service
coupon += service
if chicken < 10:
break
return coupon
딱 봐도 계속 반복되는게 반복문을 써야하는데, for문은 너무 복잡해질 것 같아서 while문으로 풀어보았다. while문이 익숙치 않아 헤맸지만, 먼저 해야할 것 부터 설명해보겠다.
- 치킨 1마리 당 쿠폰 1개
- 쿠폰 10개 --> 서비스 치킨 1마리 --> 쿠폰 1개
while문으로 service 변수에 chicken을 10으로 나눈 몫을 담아준다. 그 다음 chicken 변수에 서비스로 받은 치킨의 수를 다시 정의해주었다. coupon 변수는 service 변수를 합해나가고 만약, chicken 값이 10보다 작으면 while문을 탈출시켜 구해보았다. 🙇🏻♀️