https://www.acmicpc.net/problem/14916
14916번: 거스름돈
첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다.
www.acmicpc.net
n = int(input())
f = n//5 #사용 가능한 5의 수
ans = -1 #출력값을 저장할 변수
for i in range(f+1) : #5를 n개 사용했을때
k = 5*i
if (n-(k)) % 2 == 0 : # 남은 돈이 2로 나누어 진다면 개수를 갱신 *5가 커질수록 무조건 수가 적어짐
ans = i+ (n-(k))//2
print(ans)
풀이는 간단하다
먼저 사용 가능한 5원의 개수를 확인하고 0개 부터 최대 개수까지 5를 넣으면서 2로 나누어 떨어지는 경우의
동전의 수를 갱신해서 저장하고 최종 값을 출력하면 된다
5의 개수를 따로 확인하는 이유는 문제의 예시인 13 처럼 그냥 5의 나머지로 하는 경우 10 , 3이 되어버려
분명 거스름돈을 줄 수 있는 액수임에도 -1을 출력하게 되기 때문이다
'코딩 > 백준' 카테고리의 다른 글
백준 1003번 피보나치 함수 파이썬 코드 + 풀이 (1) | 2023.11.11 |
---|---|
백준 20365번 블로그2 파이썬 코드 + 풀이 (0) | 2023.11.09 |
백준 20300번 서강근육맨 반례 + 파이썬 코드 + 풀이 (1) | 2023.11.09 |
백준 1920번 수 찾기 파이썬 문제 풀이 (0) | 2023.11.04 |
백준 2839번 설탕 배달 파이썬 코드+풀이 (0) | 2023.11.04 |