Skip to content

Commit ed2f89e

Browse files
authored
Merge pull request #156 from YoonYn9915/main
YoonYn9915/ 3์›” 3์ฃผ์ฐจ/ 3๋ฌธ์ œ
2 parents 8b6f83f + 0456ec3 commit ed2f89e

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import sys
2+
3+
input = sys.stdin.readline
4+
5+
n = int(input())
6+
7+
dp = [0] * (n + 1)
8+
dp[1] = 1
9+
10+
for i in range(2, n + 1):
11+
dp[i] = dp[i - 2] + dp[i - 1]
12+
13+
print(dp[n])
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
n, k = map(int, input().split())
2+
3+
coin = []
4+
dp = [0] * (k + 1)
5+
6+
for _ in range(n):
7+
coin.append(int(input()))
8+
9+
coin.sort()
10+
dp[0] = 1
11+
12+
for c in coin:
13+
for i in range(c, k+1):
14+
dp[i] += dp[i-c]
15+
16+
print(dp[k])
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
2+
3+
n, k = map(int, input().split())
4+
5+
coins = []
6+
dp = [[-1] * (k + 1) for _ in range(n + 1)]
7+
for _ in range(n):
8+
coins.append(int(input()))
9+
10+
for i in range(1, n + 1):
11+
for j in range(1, k + 1):
12+
13+
if i == 1:
14+
# ์ฒซ๋ฒˆ์งธ ์—ด์ผ๋•Œ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด ๋ชซ์„ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฉด -1์„ ์ €์žฅํ•œ๋‹ค.
15+
if j % coins[i-1] == 0:
16+
dp[i][j] = j // coins[i-1]
17+
else:
18+
19+
if j <= coins[i-1]:
20+
# ํ˜„์žฌ ๋™์ „์˜ ๊ฐ€์น˜์™€ ๋”ฑ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ
21+
if coins[i-1] == j:
22+
dp[i][j] = 1
23+
else:
24+
dp[i][j] = dp[i-1][j]
25+
else:
26+
if dp[i][j - coins[i-1]] != -1 and dp[i - 1][j] != -1:
27+
dp[i][j] = min(dp[i][j - coins[i-1]] + 1, dp[i - 1][j])
28+
elif dp[i][j - coins[i-1]] == -1 and dp[i - 1][j] == -1:
29+
dp[i][j] = -1
30+
elif dp[i][j - coins[i-1]] == -1:
31+
dp[i][j] = dp[i - 1][j]
32+
else:
33+
dp[i][j] = dp[i][j - coins[i-1]] + 1
34+
35+
36+
37+
print(dp[n][k])

0 commit comments

Comments
ย (0)