본문 바로가기
개발적인/알고리즘

[백준] 11047번

by klm hyeon woo 2022. 5. 6.

11047번 동전 문제에 대한 설명

이번 문제도 알고리즘을 생각하고 풀면 간단하게 풀 수 있는 문제였다.

입력 첫째 줄에 동전의 개수와 원하고자 하는 최솟값을 입력하여 그에 따른 최소 동전 개수를 구하는 문제였는데,

리스트에 차곡차곡 쌓아주고, 내림차순으로 거꾸로 정렬시켜 a % b 를 했을 때, b가 더 큰 수라면 a가 그대로 출력되지 않을 경우를 조건으로 이용하여, 풀이를 하였다. 그러면 그 조건에 해당하는 동전의 종류만이 계산이 되어진다. 파이썬으로 풀이한 과정은 다음과 같다.

 

coin, money = map(int, input().split())
num = []

for i in range (coin):
    num.append(int(input()))

num.sort(reverse=True)
result = 0

for i in range (len(num)):
   if (money % num[i] != money):
       result += money // num[i]
       money = money % num[i]
print(result)

'개발적인 > 알고리즘' 카테고리의 다른 글

[프로그래머스] 옹알이(1)  (0) 2022.11.08
[프로그래머스] JadenCase 문자열 만들기  (0) 2022.09.16
[백준] 1931번  (0) 2022.05.08
[백준] 11399번  (0) 2022.05.06
[백준] 2839번  (0) 2022.05.06

댓글