Skip to content

Commit 042bacb

Browse files
authored
Merge pull request #65 from 24-Algorithm/minjeong
Minjeong / 10์›” 1์ฃผ์ฐจ / 4๋ฌธ์ œ
2 parents 61ebb48 + 731c9f6 commit 042bacb

4 files changed

+55
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
N = int(input()) # ๋ณ‘์‚ฌ ์ˆ˜
5+
soldiers = list(map(int, input().split())) # ๋ณ‘์‚ฌ์˜ ์ „ํˆฌ๋ ฅ ๋ฆฌ์ŠคํŠธ
6+
dp = [1 for _ in range(N)] # ๋ชจ๋“  ๋ณ‘์‚ฌ๋Š” ์ž๊ธฐ ํ˜ผ์ž์ผ ๋•Œ ๊ธธ์ด๊ฐ€ 1์ธ ์ˆ˜์—ด์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, DP์˜ ์ดˆ๊ธฐ๊ฐ’์„ 1๋กœ ์„ค์ •
7+
8+
soldiers.reverse() # ๋ณ‘์‚ฌ๋“ค์˜ ์ „ํˆฌ๋ ฅ์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋’ค์ง‘๋Š”๋‹ค.
9+
10+
for i in range(1, N):
11+
for j in range(i):
12+
# i๋ฒˆ์งธ(ํ˜„์žฌ) ๋ณ‘์‚ฌ์˜ ์ „ํˆฌ๋ ฅ์ด j๋ฒˆ์งธ(๋น„๊ต) ๋ณ‘์‚ฌ์˜ ์ „ํˆฌ๋ ฅ๋ณด๋‹ค ํด ๊ฒฝ์šฐ, ์ฆ‰ ๋‚ด๋ฆผ์ฐจ์ˆœ์ด ์œ ์ง€๋˜๋Š” ๊ฒฝ์šฐ
13+
if soldiers[i] > soldiers[j]:
14+
dp[i] = max(dp[i], dp[j] + 1) # i๋ฒˆ์งธ ๋ณ‘์‚ฌ์˜ DP ๊ฐ’์„ ๊ฐฑ์‹ 
15+
16+
# (์ „์ฒด ๋ณ‘์‚ฌ ์ˆ˜) - (๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ธธ์ด) = (์—ด์™ธํ•ด์•ผ ํ•  ๋ณ‘์‚ฌ์˜ ์ˆ˜)
17+
print(N - max(dp))
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
n = int(input()) # ์‚ผ๊ฐํ˜• ํฌ๊ธฐ
5+
triangle = []
6+
for i in range(n):
7+
line = list(map(int, input().split()))
8+
triangle.append(line)
9+
10+
# DP ์ฑ„์šฐ๊ธฐ
11+
for i in range(1, n):
12+
for j in range(0, i+1):
13+
if j == 0:
14+
triangle[i][j] += triangle[i-1][j]
15+
elif j == i:
16+
triangle[i][j] += triangle[i-1][j-1]
17+
else:
18+
triangle[i][j] += max(triangle[i-1][j-1], triangle[i-1][j])
19+
20+
print(max(triangle[n-1]))
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
K = int(input())
5+
dp = [[0, 0] for _ in range(K+1)] # ๊ฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋„๋ก ์ˆ˜์ •
6+
dp[0] = [1, 0]
7+
dp[1] = [0, 1]
8+
9+
for i in range(2, K+1):
10+
dp[i][0] = dp[i-1][0] + dp[i-2][0] # A ๊ฐœ์ˆ˜
11+
dp[i][1] = dp[i-1][1] + dp[i-2][1] # B ๊ฐœ์ˆ˜
12+
13+
print(dp[K][0], dp[K][1])
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
s = input().split(',')
5+
print(len(s))

0 commit comments

Comments
ย (0)