일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SQL
- 종합설계
- 그리디알고리즘
- 백준
- MyPlaylist
- minimum spanning tree
- codetree
- 실습
- 데이터베이스
- Planned
- DFS
- 파이썬
- 동적계획법
- 프로그래머스
- 장고
- 소프트웨어공학
- 알고리즘
- Kruskal
- DP
- 마라마라빔
- 백트래킹
- 최소스패닝트리
- django
- Bellman-Ford
- 코드트리
- B대면노래방
- BFS
- 모각코
- 함밥
- programmers
Archives
- Today
- Total
Leta Learns
[Python] 백준 11047번 - 동전 0 본문
문제 https://www.acmicpc.net/problem/11047
회의실 배정 문제를 제외하면 그리디는 처음 풀어본 것 같다.
정해진 틀이 있는 게 아니라 알고리즘 생각하고 구현하는 느낌이라서 풀면서 내가 지금 그리디로 잘 풀고 있는 게 맞나? 의문이 들었다.
가장 큰 동전부터 사용하기 위해서 입력받은 동전의 가치들을 역순으로 정렬한 후 for문을 사용하여 가능한 동전 수를 구하였다.
어쨌든 가장 큰 것부터 했으니까.. 그리디가 맞는 것 같다..
n, k = map(int, input().split()) #n:동전 종류, k:가치의 합(k원)
A = [0 for i in range(n)] #동전의 가치를 저장하는 리스트
for i in range(n):
A[i] = int(input())
count = 0 #동전 개수
A.sort(reverse=True)
for i in range(n):
if A[i] <= k:
share = k//A[i]
k -= share*A[i]
count += share
print(count)
'Coding > 백준' 카테고리의 다른 글
[Python] 백준 2606번 - 바이러스 (0) | 2021.07.11 |
---|---|
[Python] 백준 2616번 - 소형기관차 (5) | 2021.07.10 |
[Python] 백준 18234번 - 당근 훔쳐 먹기 (0) | 2021.07.09 |
[Python] 백준 12865번 - 평범한 배낭 (0) | 2021.07.05 |
[Python] 백준 9251번 - LCS (0) | 2021.07.05 |
Comments