Koala - 15기/기초 알고리즘 스터디

[백준/python3] 1673번 치킨 쿠폰

Zirulralra 2024. 7. 22. 03:57

 

https://www.acmicpc.net/problem/1673


문제풀이

+ 유의사항 : 쿠폰을 도장으로 나눈 후 (서비스(추가) 치킨) 사용되지 않은 나머지 쿠폰을 고려해야 함.

(이를 반복문에 넣어(나머지. %) 남은 치킨도 계산에 쓰이게 할 것)

 

1. 입력한 만큼 출력해주는 while True 문 삽입

2. total 과 stamps 변수 설정 (n으로 함.)

3. 도장의 개수가 k보다 크거나 같은 경우 계속 반복한다.

3 - 1. 추가 치킨은 도장의 개수를 k로 나눈 몫이다.

3 - 2. 총 치킨의 수는 ((이전 치킨의 수) + (추가 치킨의 수))이다. (값을 계속 갱신)

3 - 3. 도장의 수는 (이전 도장의 수 를 k로 나눈 나머지 + (추가 치킨))의 수이다. (갱신)

 4. 출력


소스코드

while True:
    try:
        S = input().split()
        n = int(S[0])
        k = int(S[1])

        total = n
        stamps = n

        while stamps >= k:
            new_chickens = stamps // k
            total += new_chickens
            stamps = stamps % k + new_chickens

        print(total)

    except:
        break