728x90
https://www.acmicpc.net/problem/11047
<조건>
1. n(동전의 종류), k(동전의 합계) 입력
2. k원을 만드는데 필요한 동전의 최솟값 출력
#입력
n, k=map(int, input().split()) #동전의 종류(개수), 총합
count=0 #필요한 동전의 개수
unit = [int(input()) for _ in range(n)]
#그리디 알고리즘
while(k>0):
c=0
if k>=unit[-1]:
c=k//unit[-1]
count+=c
k-=c*unit[-1]
unit.pop(-1)
#출력
print(count)
풀이 과정
한 번에 풀어서 유후~하고 제출했더니 시간초과 걸렸다..
#입력
n, k=map(int, input().split()) #동전의 종류(개수), 총합
unit=[] #동전의 단위
count=0 #필요한 동전의 개수
for i in range(n):
u=int(input())
unit.append(u)
#그리디 알고리즘
unit.sort()
while(k>0):
if k>=unit[-1]:
k-=unit[-1]
count+=1
if k<unit[-1]: unit.pop(-1)
#출력
print(count)
당연한 소리지만 중첩문을 쓰면 Q(n^2)이니까 시간초과가 된다...ㅋㅋ 꼭 똥인지 된장인지 찍어 먹어봐야 하는 스타일
#입력
n, k=map(int, input().split()) #동전의 종류(개수), 총합
unit=[] #동전의 단위
count=0 #필요한 동전의 개수
for i in range(n):
u=int(input())
unit.append(u)
#그리디 알고리즘
unit.sort()
while(k>0):
while(k>=unit[-1]):
k-=unit[-1]
count+=1
unit.pop(-1)
#출력
print(count)
'python > 백준_프로그래머스' 카테고리의 다른 글
[백준 2039번] 일곱 난쟁이 python과 combinations (0) | 2022.02.03 |
---|---|
[백준 1026번] 보물 python과 리스트 정리 (0) | 2022.02.02 |
[백준 1920번] 수 찾기(이진 탐색) python (0) | 2021.12.30 |
[백준 2750번] 수 정렬하기 python (0) | 2021.12.28 |
[ 백준 2798번] 블랙잭 python (1) | 2021.12.27 |