티스토리 뷰
반응형
⊙ 문제
⊙ 입력
⊙ 출력
⊙ 예제 입출력
⊙ 알고리즘 분류
- 다이나믹 프로그래밍
⊙ 문제 접근 과정
LIS 문제... 블로그에서 2번째로 다룬다.
생각보다 꽤 중요한 알고리즘으로 느껴졌고 이번 기회에 집중해서 파봤다.
전에 DP 문제를 풀 때 tooo1.tistory.com/121 풀었었는데 이번에도 DP 문제에서 또다시 나왔다.
DP에 자주 나오는 문제라고 느꼈고 그냥 넘어가선 안 된다고 생각했다.
LIS에 대한 자세한 설명은 위 링크에서 확인하자!
아래 풀이는 O(N^2) 풀이법이다. O(N log N) 풀이법도 있다.
하지만 이번 문제에서는 제한이 널널하여 비교적 구현하기 쉬운 시간 복잡도 O(N^2)으로 풀었다.
⊙ 문제 풀이
#include <iostream>
#include <algorithm>
#define SIZE 1000
using namespace std;
int a;
int max_value=0;
int arr[SIZE];
int dp[SIZE];
int main() {
cin >> a;
for(int i=0;i<a;i++) {
cin>>arr[i];
}
for(int i=0;i<a;i++) {
dp[i]=1;
for(int j=0;j<i;j++)
if(arr[i]>arr[j])
dp[i]=max(dp[i],dp[j]+1);
max_value=max(max_value,dp[i]);
}
cout<<max_value;
}
⊙ 결과
⊙ 마무리
LIS 그냥 넘어가지말자
좋아요는 로그인하지 않아도 누를 수 있습니다!
728x90
반응형
'백준 온라인 저지 [BOJ] > C++ [CPP]' 카테고리의 다른 글
[백준(BOJ)] 2741번 : N 찍기 - C++[CPP] (0) | 2021.05.14 |
---|---|
[백준(BOJ)] 12015번 : 가장 긴 증가하는 부분 수열 2 - C++[CPP] (0) | 2021.05.13 |
[백준(BOJ)] 2512번 : 예산 - C++[CPP] (2) | 2021.05.12 |
[백준(BOJ)] 2110번 : 공유기 설치 - C++[CPP] (0) | 2021.05.11 |
[백준(BOJ)] 2884번 : 알람 시계 - C++[CPP] (0) | 2021.05.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 그리디
- 파이썬
- CPP
- 우종정
- 알고리즘
- 정렬
- 쉽게 배우는 자바 프로그래밍
- py
- BFS
- 연습문제
- 구현
- 백준
- 해답
- OS
- 쉽게배우는
- 운영체제
- 문자열
- java
- Python
- 정리
- JS
- 자바스크립트
- 풀이
- 답
- 자바
- C++
- Web
- 프로그래머스
- 쉽게배우는자바프로그래밍
- 정답
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함