728x90
반응형
※ 문제링크
11047번: 동전 0
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
www.acmicpc.net
※ 관련개념
탐욕법(그리디) 알고리즘
탐욕법(이하 '그리디') 알고리즘이란 현재 상황에서 가장 좋은 것(최선의 선택)을 고르는 알고리즘을 말합니다. 그리디 알고리즘은 동적 프로그래밍을 간단한 문제 해결에 사용하면 지나치게 많
velog.io
해당 문제는 그리디 알고리즘을 활용하여 푸는 문제였다. 사실 그리디 알고리즘이 정확히 무엇인지 몰라도 문제를 풀 수 있었으나, 그리디 알고리즘의 개념을 확인하기 위해 구글링 통해 개념을 확인하여 봤다. 그 중에서 가장 잘 그리디 알고리즘 개념을 설명하고 있는 블로그가 있어서 링크를 걸어보았다. 구체적인 문제풀이 방법과 코드는 아래와 같다.
1. 입력받은 금액의 크기를 리스트에 저장해준다.
2. 끝에서부터 K를 나눌 수 있으면 K를 금액을 나눈 몫만큼 카운트에 추가 후, K는 금액으로 나눈 나머지로 반환한다.
3. K값이 0이 되면 반복문을 종료하고 cnt값을 출력한다.
N, K = map(int, input().split())
c_list = [int(input()) for _ in range(N)]
cnt = 0
i = N-1
while K > 0:
if c_list[i] <= K:
cnt += K // c_list[i]
K = K % c_list[i]
else:
i -= 1
print(cnt)
P.S 개발자가 되기위해 공부중입니다. 잘못된 부분을 댓글로 남겨주시면 학습하는데 큰 도움이 될 거 같습니다.
728x90
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 11399번 ATM / 사용언어 : 파이썬(python) (0) | 2021.12.24 |
---|---|
[BOJ] 1931번 회의실 배정 / 사용언어 : 파이썬(python) (0) | 2021.12.24 |
[BOJ] 1912번 연속합 / 사용언어 : 파이썬(python) (0) | 2021.12.23 |
[BOJ] 2156번 포도주 시식 / 사용언어 : 파이썬(python) (0) | 2021.12.23 |
[BOJ] 2579번 계단 오르기 / 사용언어 : 파이썬(python) (0) | 2021.12.23 |
댓글