Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바
- 백준 12761번
- 백준 12761
- 자바 디자인 패턴
- 도메인 주도 개발
- MongoDB Realm
- 도메인 주도 개발 시작하기
- 정렬
- golang struct
- http 완벽가이드
- 백준 사이트
- ddd
- 파이썬
- 백준
- flask
- String 함수
- 몽고디비 렘
- 우분투
- 트리 순회
- http 개념
- 12761번 돌다리
- golang
- domain driven develop
- 12761 돌다리
- 백준 파이썬
- 고 배열
- hadoop
- 자바 디자인패턴
- go
- 하둡
Archives
- Today
- Total
개발바닥
BOJ_14002 [ 가장 긴 증가하는 부분 수열 4 ] [ 파이썬 ] 본문
반응형
문제
https://www.acmicpc.net/problem/14002
문제 해결 방법
다이나믹 프로그래밍으로 문제를 해결해야 된다.
범위가 1000이기 때문에 2중 포문을 통해서 가장 긴 값을 갱신해주면 된다.
DP[현재 인덱스] = Date[기존인덱스] < Date[현재인덱스] and DP[기존인덱스] + 1 > DP[현재인덱스]
인 경우에는 DP[현재 인덱스] 값을 갱신해준다.
소스 코드 보기
https://github.com/jokerKwu/BOJ_Algorithm/blob/master/python/BOJ_14002.py
import sys
input = sys.stdin.readline
N = int(input())
date = list(map(int,input().split()))
date.insert(0, 0)
dp = [ 1 for _ in range(1002) ]
dp[1] = 1
answer_value = dp[1]
for i in range(2, N+1):
for j in range(1, i):
if date[i] > date[j] and dp[i] < dp[j] + 1:
dp[i] = dp[j] + 1
if dp[i] > answer_value:
answer_value = dp[i]
value = answer_value
answer_arr = []
for i in range(N, 0, -1):
if dp[i] == value:
answer_arr.append(date[i])
value -= 1
print(answer_value)
for i in range(len(answer_arr)-1, -1, -1):
print(answer_arr[i], end=' ')
반응형
'[ Algorithm ] > [ PYTHON ]' 카테고리의 다른 글
BOJ_14395 [ 4연산 ] [ 파이썬 ] (1) | 2020.06.29 |
---|---|
BOJ_12865 [ 평범한 배낭 ] [ 파이썬 ] (0) | 2020.06.13 |
BOJ_11058 [ 크리보드 ] [ 파이썬 ] (0) | 2020.06.10 |
BOJ_2864 [ 5와 6의 차이 ] [ 파이썬 ] (0) | 2020.06.01 |
BOJ_12761 [ 돌다리 ] [ 파이썬 ] (0) | 2020.05.29 |
Comments