백준 5585번 - 반복문에 반복되는 요소 리스트로 줄이기

KSH·2022년 1월 27일
0
post-thumbnail

처음 풀이

X = int(input())

# 거스름돈 개수가 가장 적을 때 -> 큰 단위부터 순차적으로 나누기

result = 1000-X
cnt = 0

while result > 0:
    if result // 500 != 0:
        cnt += result // 500
        result = result % 500
        
    
    if result // 100 != 0:
        cnt += result // 100
        result = result % 100

        
    if result // 50 != 0:
        cnt += result // 50
        result = result % 50

    if result // 10 != 0:
        cnt += result // 10
        result = result % 10
        
    if result // 5 != 0:
        cnt += result // 5
        result = result % 5
            
    if result // 1 != 0:
        result = result // 1
        cnt += result
        result = 0

👉 while문 안에 if가 너무 반복된다. 또, if문 안에 구조도 거의 다 비슷하다.

리스트로 수를 저장하고 for문으로 반복한 풀이

X = 1000 - int(input())
charge = [500, 100, 50, 10, 5, 1]
cnt = 0

for i in charge:
    cnt += X // i
    X %= i
    
print(cnt)

👉 500, 100, 50, 10, 5, 1 이렇게 if문에서 반복됐던 수를 리스트로 저장하고
그 리스트 요소를 반복하는 for문으로 간단하게 정리할 수 있다!

profile
성실히 살아가는 비전공자

0개의 댓글