def solution(chicken):
service = 0
while chicken >= 10: # 쿠폰이 10장 이상일 때부터 조건 시작
service += chicken // 10 # 서비스 시킬 때는 쿠폰 10장 필요
chicken = chicken % 10 + chicken // 10 #10장 단위로 써서 %, 서비스에서도 쿠폰 발생
return service
🤔 문제 풀이
- 문제를 이해하는데 꽤나 시간이 걸렸던 문제였어요
- service = 0
- 일단 서비스로 받는 치킨 수를 구하는 게 목표이기 때문에 식별자 이름을 service로 변경해 주었어요
- while chicken >= 10:
- 쿠폰이 10장 이상부터 서비스가 발생하니까, 조건을 이렇게 해줄게요
- service += chicken // 10
- 서비스는 치킨을 시킨 수에 10을 나눈 몫만큼 발생하게 돼요
- 잊지 말아야 하는 점은, 서비스를 시켰을 때에도 쿠폰이 생성돼요
- chicken = chicken % 10 + chicken // 10
- 치킨 마리당 쿠폰 1장이에요
- chicken % 10
- 서비스 치킨을 시켰을 때 10 단위로 소모가 되었고,
- chicken = chicken % 10
- 서비스 치킨을 시키면 생성되는 쿠폰 수까지 더해줘요
- 이렇게 하면 while문은 완성이 돼요
- return service
- 발생하는 쿠폰 수만큼 service에 더하도록 했기 때문에 return service 하면, 문제 해결!
저번에 풀었던 머쓱이네 피자 가게 문제와 비슷한 유형인 거 같더라구요
그래도 풀기 쉽지 않았던 문제였습니다 🥲
'문제 풀기 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 저주의 숫자 3 (for, while) (0) | 2025.01.10 |
---|---|
[프로그래머스] 등수 매기기 (index(), 이중 리스트) (0) | 2025.01.10 |
[프로그래머스] 로그인 성공? (주석 달기) (0) | 2025.01.09 |
[프로그래머스] 직사각형 넓이 구하기 (x, y 좌표의 거리값) (1) | 2025.01.09 |
[프로그래머스] 종이 자르기 (0) | 2025.01.09 |