백준 14916번 - 거스름돈
백준 14916번 바로가기 나의 풀이 c = int(input()) arr = [0,2,1,3,2,1,3,2,4,3] if c == 1 or c == 3: print(-1) else: print((c//10)*2 + arr[c%10]) 고수의 풀이 n=int(input()) print((n//5+[0,2,1,3,2][n%5],-1)[n in(1,3)]) 출처 CODE REVIEW 두 자리 숫자부터는 10=5원*2로 생각해서 10마다 2씩 늘려주면된다. 따라서 거스름돈을 10으로 나눈 몫(q)과 나머지(r)에 집중해서 풀면 된다. 고수의 풀이의 경우 5로 나눈 몫과 나머지를 가지고 문제를 풀어주었다. 나머지 논리는 동일!