728x90
📚문제
📝풀이
def solution(chicken):
cnt = 0
while chicken >=10:
service = chicken // 10
coupon = chicken % 10
cnt += service
chicken = service + coupon
return cnt
서비스 쿠폰을 받아서 계속 더해가는 이런 류의 문제를 많이 본것 같은데
(병을 모으는데 10병 모으면 한병 더...뭐 이런)
생각보다 어려웠다....
구글링 참고
우선 중요한 것은
cnt (정답:서비스 치킨의 수)는
while문 밖에 두어서 반복과 동일하게 증가하도록 한다
service에는 치킨의 수를 10으로 나누어( 쿠폰 10장으로 먹는 셈치고) 나온 몫 값을 추가
=> 10장이면 서비스 치킨인데 서비스 치킨 총 몇개 먹을 수 있나
coupon은 치킨의 수를 10으로 나누어 ( 마찬가지로 쿠폰 10장으로 바꾸어 먹고 ) 나머지 값 추가
=> 10장으로 서비스 치킨 다 시키고 남은 쿠폰이 몇개인가
cnt에는 service 치킨의 개수 추가
chicken = service + coupon
이 부분이 잘 생각이 안 났다.
일단 while문을 돌려면 치킨의 개수가 변경되어야하고
그 치킨을 어떤 값으로 해주어야 하는지가 머릿속에서 안 떠올랐다
chicken = 1081
# 치킨 시켜먹고 쿠폰 있는 상태에서 서비스 치킨부터 시작
service_chicken = chicken // 10 # 서비스 치킨 108 마리
coupon = chicken % 10 # 남은 쿠폰 1
while True:
if service_chicken < 10:
return service_chicken
break
else:
coupon += service_chicken % 10
service_chicken += service_chicken // 10
.
.
.
.
그래서 이런 식으로 코드짜다가 포기...
아무튼 위처럼 코드를 짜주면 cnt에는 계속 서비스 치킨만 추가가 되고
치킨이 10마리 이하(서비스 치킨 발생하지 않을 때)될 때까지 반복된다
728x90
'Python(알고리즘,문제풀이) > 프로그래머스(입문100제)' 카테고리의 다른 글
코딩테스트입문 / 문자열 밀기 (0) | 2023.08.09 |
---|---|
코딩테스트 입문 / 이진수 더하기 (int, bin) (0) | 2023.08.08 |
코딩테스트입문 / 로그인 성공? (0) | 2023.08.07 |
코딩테스트입문 / 옹알이(1) (permutations함수) (0) | 2023.08.07 |
코딩테스트입문 / 등수 매기기 (0) | 2023.08.07 |