Skip to content

Commit 90ea849

Browse files
committed
2 parents fb3b0f6 + 042bacb commit 90ea849

6 files changed

+88
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
n = int(input())
2+
3+
dp = [1, 1, 2, 3, 5, 8]
4+
5+
if n > 5:
6+
for i in range(6, n):
7+
dp.append(dp[i-1] + dp[i-2])
8+
9+
ans = (dp[n-1] * 2) + ((dp[n-1] + dp[n-2]) * 2)
10+
11+
if n == 1:
12+
ans = 4
13+
14+
print(ans)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
def sort(arr,dp):
3+
global N
4+
5+
for i in range(1,N,1):
6+
for j in range(i-1,-1,-1):
7+
if arr[j] > arr[i]:
8+
dp[i] = max(dp[i],dp[j]+1)
9+
10+
11+
N = int(input())
12+
13+
arr = list(map(int,input().split()))
14+
dp = [1] * N
15+
16+
sort(arr, dp)
17+
18+
print(N-max(dp))
19+
Lines changed: 17 additions & 0 deletions
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)