diff --git "a/alstjr7437/DP/\352\265\254\352\260\204-\353\202\230\353\210\204\352\270\260.py" "b/alstjr7437/DP/\352\265\254\352\260\204-\353\202\230\353\210\204\352\270\260.py" new file mode 100644 index 0000000..6c56569 --- /dev/null +++ "b/alstjr7437/DP/\352\265\254\352\260\204-\353\202\230\353\210\204\352\270\260.py" @@ -0,0 +1,21 @@ +# n, m = map(int,input()) + +# num = [ i for i in range(n): int(input())] + +# dp = [[-1e9] * m for _ in range(n+1)] +# for i in range(n): + +import sys +input = sys.stdin.readline + +n, m = map(int, input().split()) +dp1 = [[0]+[-1e9]*m for i in range(n+1)] +dp2 = [[0]+[-1e9]*m for i in range(n+1)] +num = [int(input()) for i in range(n) ] + +for i in range(1, n+1): + for j in range(1, min(m, (i+1)//2)+1): + dp2[i][j]=max(dp1[i-1][j], dp2[i-1][j]) + dp1[i][j]=max(dp1[i-1][j], dp2[i-1][j-1])+num[i-1] +print(max(dp1[n][m], dp2[n][m])) + diff --git a/alstjr7437/README.md b/alstjr7437/README.md index f3af489..a9ac7f8 100644 --- a/alstjr7437/README.md +++ b/alstjr7437/README.md @@ -17,3 +17,5 @@ | 13차시 | 2024.02.29 | DP | 쉬운 계단 수 | https://github.com/AlgoLeadMe/AlgoLeadMe-6/pull/42 | | 14차시 | 2024.03.03 | 브루트포스 | 마인크래프트 | https://github.com/AlgoLeadMe/AlgoLeadMe-6/pull/48 | | 15차시 | 2024.03.09 | 우선순위 큐 | 파일 합치기3 | https://github.com/AlgoLeadMe/AlgoLeadMe-6/pull/53 | +| 16차시 | 2024.03.13 | 정렬 | 선 긋기 | https://github.com/AlgoLeadMe/AlgoLeadMe-6/pull/57 | +| 17차시 | 2024.03.16 | DP | 구간 나누기 | https://github.com/AlgoLeadMe/AlgoLeadMe-6/pull/61 | \ No newline at end of file diff --git "a/alstjr7437/\354\240\225\353\240\254/\354\204\240 \352\270\213\352\270\260.py" "b/alstjr7437/\354\240\225\353\240\254/\354\204\240 \352\270\213\352\270\260.py" new file mode 100644 index 0000000..0bfd88f --- /dev/null +++ "b/alstjr7437/\354\240\225\353\240\254/\354\204\240 \352\270\213\352\270\260.py" @@ -0,0 +1,27 @@ +import sys +input = sys.stdin.readline + +n = int(input()) +dohwaji = [tuple(map(int,(input().split()))) for _ in range(n)] + +# for i in range(len(dohwaji)): +# dohwaji[i][0] += 1000000000 +# dohwaji[i][1] += 1000000000 + +dohwaji.sort() + +line = dohwaji[0][1] +answer = dohwaji[0][1] - dohwaji[0][0] + +for left, right in dohwaji[1:]: + if right <= line: + continue + elif line < left: + answer += right - left + line = right + elif line >= left and right > line: + answer += right - line + line = right + # print(answer) + +print(answer) \ No newline at end of file