- Django 기초
- 바닥장식 파이썬
- 프로그래머스 알고리즘 고득점 kit
- dp 알고리즘
- 프로그래머스
- 프로그래머스 고득점 kit
- 전화번호 목록 python
- 백준 다이나믹프로그래밍
- spring 기초
- 코테 연습
- 코딩테스트 연습
- 백준
- 코테
- 알고리즘 문제
- 프로그래머스 전화번호 목록 파이썬
- 스프링 초보
- programmers
- 코딩테스트
- 프로그래머스 레벨1
- 백준 바닥장식 python
- 프로그래머스 레벨2
- 알고리즘 공부
- 프로그래머스 level1
- 백준 dp
- 장고
- 프로그래머스 전화번호 목록 python
- Django
- 장고 기초
- 스프링 기초
- Spring 초보
- Today
- Total
목록dp 알고리즘 (2)
일일구름 IT
코드 n, k = map(int, input().split()) coin = [] for i in range(n): coin.append(int(input())) sum = [10001 for i in range(k+1)] sum[0] = 0 for i in coin: for j in range(i, k+1): sum[j] = min(sum[j], sum[j-i]+1) if sum[k] == 10001: print(-1) else: print(sum[k]) 동전 1과 비슷한 문제이지만 차이점은 동전의 최소 갯수를 구하는 점과 불가능한 경우엔 -1을 출력하는 것이다. 일단 sum 리스트를 초기값 10001로 초기화 해준다. i==j일 경우에는 동전을 1개만 뽑아도 되므로 sum[0]에 0을 넣어 sum[i..
문제 코드 n, k = map(int, input().split()) coin = [] for i in range(n): coin.append(int(input())) sum = [0 for i in range(k+1)] sum[0] = 1 for i in coin: for j in range(i, k+1): sum[j] += sum[j-i] print(sum[k]) 예제의 경우로 설명해보면, 동전 1만 선택했을 경우, 동전 1, 2원 중에서 선택한 경우, 동전 1, 2, 5원 중에서 선택한 경우를 차례로 구한다. sum[0]에 1을 넣어준 이유는 j원이 되는데 i원 1개만 선택해도 되는 경우를 고려한것입니다. (j == i인 경우) sum[j] += sum[j-i] 코드는 동전 i원을 뺀 값이 되는 경..