내코드
def solution(chicken):
answer = 0
while chicken >= 10:
service = chicken // 10
answer += service
chicken = chicken % 10 + service
return answer
코드설명
- 치킨을 10마리 시키면 쿠폰 10장이 발급됩니다.
- 쿠폰 10장을 사용해 서비스 치킨을 받고, 이 서비스 치킨에서 다시 쿠폰이 발급됩니다.
- 서비스 치킨을 받은 후 남은 쿠폰(chicken % 10)을 새로운 서비스 치킨 수와 합쳐서 다시 쿠폰을 사용합니다.
특징
- 남은 쿠폰을 버리지 않고 최대한 활용하여 서비스 치킨을 최대한 받을 수 있도록 합니다.
- 효율적으로 쿠폰을 재사용하는 방식입니다.
다른 코드
def solution(chicken):
return (chicken - 1) // 9
코드설명
- 이 코드는 수학적으로 쿠폰을 계산하는 방식입니다.
- (chicken - 1) // 9를 사용하여 서비스 치킨 수를 바로 계산합니다.
- chicken이 10 이상일 때마다 1마리를 받을 수 있기 때문에, 전체 치킨 수에서 1을 뺀 후 9로 나눕니다.
특징
- 반복문 없이 한 줄로 구현할 수 있어 매우 간단합니다.
- 효율적이고 깔끔하지만, 수학적 접근이기 때문에 처음에는 이해하기 어려울 수 있습니다.
두 코드 비교
- 첫 번째 코드는 직관적이고 이해하기 쉽지만 반복문을 사용합니다.
- 두 번째 코드는 반복문 없이 수학적으로 계산하여 실행 속도가 빠르고 코드가 짧습니다.
결론
두 번째 코드가 가장 효율적이지만, 문제를 처음 접하는 사람에게는 첫 번째 코드가 더 이해하기 쉽습니다.
필요에 따라 상황에 맞는 코드를 선택하면 됩니다!
'프로그래머스' 카테고리의 다른 글
프로그래머스 | Python | 유한소수 판별하기 (0) | 2025.01.13 |
---|---|
프로그래머스 | Python | 등수 매기기 (0) | 2025.01.10 |
프로그래머스 | Python | 저주의 숫자 3 (0) | 2025.01.07 |
프로그래머스 | Python | 종이 자르기 (0) | 2025.01.06 |
프로그래머스 | Python | 다항식 더하기 (1) | 2024.12.26 |