2293-g4 성공
This commit is contained in:
32
workbook_7319/gold/2293-g4.py
Normal file
32
workbook_7319/gold/2293-g4.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# 동전 1
|
||||
|
||||
import sys
|
||||
|
||||
input = sys.stdin.readline
|
||||
|
||||
def solution():
|
||||
n, k = map(int, input().rstrip().split())
|
||||
|
||||
dp = [0] * (k+1)
|
||||
dp[0] = 1
|
||||
|
||||
for _ in range(n):
|
||||
coin = int(input().rstrip())
|
||||
for i in range(coin, k+1):
|
||||
dp[i] = dp[i-coin] + dp[i]
|
||||
|
||||
print(dp[k])
|
||||
return
|
||||
|
||||
|
||||
solution()
|
||||
|
||||
"""
|
||||
걸린 시간: 13분
|
||||
|
||||
시간 복잡도: 동전 개수(n)만큼 k 길이의 테이블을 업데이트 해야하기 때문에 O(n*k)이다.
|
||||
|
||||
해설: 조합 조건으로 여러 동전을 활용해서 k 값을 만들어야 한다.
|
||||
이는 순서를 정해줘야 하기 때문에 동전을 하나씩 쓰면서 전체 dp를 순회해야 한다.
|
||||
1, 2, 5의 동전이 있다면 1 썼을 때 전체 dp, 2도 썼을 때 전체 dp 이런식으로.. (동전 사용 순서는 상관없다. 조합이니까 하나로만 정해지면 됨)
|
||||
"""
|
||||
Reference in New Issue
Block a user