Python/백준 (BOJ)

[BOJ][B2]치킨 쿠폰 - 1673

ㅋㅋ! 2025. 8. 7. 13:00

https://www.acmicpc.net/problem/1673
문제 전문은 링크 참조

문제가공

본 문제를 1차적으로 정리하자면 아래와 같다.

  1. 가지고 있는 쿠폰으로 치킨을 시킨다
  2. 치킨 한마리당 도장하나를 받는다
  3. 받은 도장을 쿠폰으로 바꾼다
  4. 1번 으로 돌아가서 더 이상 주문 하지 못할때 까지 반복

치킨을 주문할 때마다,

  1. 현재먹은 치킨 수
  2. 남은 쿠폰 수
  3. 남은 도장 수

를 관리 해야 하는데, 관리해야 할 변수가 많아지면 계산이 복잡해지므로

아래와 같이 문제를 2차 가공한다

2차가공

  1. 가지고 있는 쿠폰을 스탬프로 바꾼다.
  2. 쿠폰의 개념을 삭제하고 치킨과 스탬프 개수만 계산하자

코드작성

import sys

while True:
    input = sys.stdin.readline().rstrip()
    if input == '':
        break
    my_coupon , stampForOnechicken = map(int, input.split())
    myStamp = my_coupon * stampForOnechicken # 쿠폰 * 필요 도장 수
    chickens = 0

    while myStamp >= stampForOnechicken:
        c = myStamp // stampForOnechicken
        chickens += c
        myStamp = c + (myStamp % stampForOnechicken)

    print(chickens)

리뷰

간단해 보이는데 코드화 하려니 시간을 꽤나 잡아 먹었다.

'Python > 백준 (BOJ)' 카테고리의 다른 글

[BOJ][B2]암호- 1718  (0) 2025.08.10
[BOJ][B2]손익분기점-1712  (1) 2025.08.09
[BOJ][B2]줄 세우기 - 1681  (1) 2025.08.08
[BOJ][B2]트로피 진열 - 1668  (1) 2025.08.06
[BOJ][B2]영식이와 친구들 - 1592  (4) 2025.08.05