[백준/파이썬] 17174번 풀이

업데이트:



문제 정보


풀이

문제

호근이는 한국에서 미국으로 유학을 하러 갔다. 그는 생활비로 쓰기 위해 가지고 온 원화를 전부 달러로 바꾸기 위해 환전소를 찾아갔다. 그런데 환전소에 1달러짜리 지폐를 제외하고는 다른 지폐가 없어서 전부 1달러 지폐로 바꾸어 숙소로 가져왔다. 환전한 금액을 알고 있지만 불안한 마음에 숙소에서 다시 한 번 얼마인지 세어 보려고 한다.

호근이는 우선 1달러 지폐를 한 장씩 세면서 M개의 지폐를 한 묶음으로 만든다. 그 다음에는 새로 만들어진 묶음을 하나씩 세면서 M개의 묶음을 다시 하나로 묶는다. 더 이상 묶음이 만들어지지 않을 때까지 이 과정을 반복한다. 이때 호근이가 묶음을 포함해 지폐를 센 전체 횟수를 구하여라.

예를 들어 N이 13이고 M이 10일 때, 13달러를 세기 위해서는 1달러씩 총 13번을 세고, 지폐 10장을 한 묶음으로 만들고, 한 개의 묶음을 다시 한 번 세어 총 14번을 세야 한다.

입력 요약
첫 번째 줄에 환전한 금액 N과 묶음의 크기 M이 주어진다. (2 ≤ N ≤ 100,000, 2 ≤ M ≤ N)

출력 요약
전체 센 횟수를 출력한다.

코드

n,m=map(int,input().split())
s=0
while n > 0:
    s+=n
    n//=m
print(s)

설명

핵심은 구현 관점에서 호근이는 한국에서 미국으로 유학을 하러 갔다. 그는 생활비로 쓰기 위해 가지고 온 원화를 전부 달러로 바꾸기 위해 환전소를 찾아갔다. 그런데 환전소에 1달러짜리 지폐를 제외하고는 다른 지폐가 없어서 전부 1달러 지폐로 바꾸어 숙소로 가져왔다. …를 만족하도록 로직을 구성하는 것입니다.

코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.

경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.



댓글남기기