https://www.acmicpc.net/problem/11047
풀이과정
①문제 바라보기
기본적인 그리디 문제다.
어렵게 낼 수 있다면 굉장히 어렵게 낼 수 있는 문제인데 이 문제의 경우에는 굉장히 기본기본기본적인 문제같다.
②아이디어 펼치기
연산자 %와 //을 활용하면 간단히 풀릴 것이다.
몫을 구해서 만약 1 이상이라면 남는 돈은 %한 값이 되는거고 빠져나간 동전의 개수는 //가 되는 것이다.
이때 필요한 동전의 개수를 cnt에 더해주면 된다.
③최종코드
import sys
N, K = map(int,sys.stdin.readline().rstrip().split())
coin_type = list()
for _ in range(N):
coin_type.append(int(sys.stdin.readline().rstrip()))
coin_type.sort()
coin_type.reverse()
ans = 0
for coin in coin_type:
tmp = K//coin
ans += tmp
K = K%coin
print(ans)
'Algorithm > 문제풀이' 카테고리의 다른 글
[백준] 12851 숨바꼭질 2(C++) (0) | 2024.04.30 |
---|---|
[1260번] DFS와 BFS (feat: 동적할당 오버헤드 및 고정크기배열) (0) | 2024.04.06 |
[백준] 11724번 연결 요소의 개수 (Python) (0) | 2022.09.06 |
[백준] 11054번 가장 긴 바이토닉 부분 수열 (Python) (0) | 2022.09.03 |
[백준] 11053번 가장 긴 증가하는 부분수열 (Python) (0) | 2022.09.03 |