문제
손님이 2원짜리와 5원짜리로만 거스름돈을 달라고 한다. 2원짜리 동전과 5원짜리 동전은 무한정 많이 가지고 있다. 동전의 개수가 최소가 되도록 거슬러 주어야 한다. 거스름돈이 n인 경우, 최소 동전의 개수가 몇 개인지 알려주는 프로그램을 작성하시오.
예를 들어, 거스름돈이 15원이면 5원짜리 3개를, 거스름돈이 14원이면 5원짜리 2개와 2원짜리 2개로 총 4개를, 거스름돈이 13원이면 5원짜리 1개와 2원짜리 4개로 총 5개를 주어야 동전의 개수가 최소가 된다.
입력
첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다.
출력
거스름돈 동전의 최소 개수를 출력한다. 만약 거슬러 줄 수 없으면 -1을 출력한다.
예제 입력
13
예제 출력
5
Solution
import sys
input = sys.stdin.readline
n = int(input())
cnt = 0
while 0 < n:
if n % 5 == 0:
cnt += n // 5
break
else:
n -= 2
cnt += 1
if n < 0:
print(-1)
else:
print(cnt)
'BOJ 코딩테스트 > Silver' 카테고리의 다른 글
BOJ 10866번 : 덱 (Python/Silver 4) (0) | 2023.04.20 |
---|---|
BOJ 10709번 : 기상캐스터 (Python/Silver 5) (0) | 2023.04.17 |
BOJ 16953번 : A -> B (Python/Silver 2) (0) | 2023.04.05 |
BOJ 1541번 : 잃어버린 괄호 (Python/Silver 2) (0) | 2023.04.04 |
BOJ 2217번 : 로프 (Python/Silver 4) (0) | 2023.04.03 |