[boj][c++] 11053 가장 긴 증가하는 수열

ppparkta·2022년 9월 9일
1

Problem solving

목록 보기
34/65

11053 가장 긴 증가하는 수열

dp로 풀었다.
n개의 수를 이중 배열로 비교하며 if (arr[j] < arr[i]) 에서 dp[i] = max (dp[i], dp[j] + 1) 을 수행하는 방식으로 풀었다.

여기보고 이해했다. dp 어려워

#include	<iostream>
using namespace std;

int n, a, ans;
int arr[1001];
int dp[1001];

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> arr[i];
	}
	for (int i = 0; i < n; i++)
	{
		dp[i] = 1;
		for(int j=0;j<i;j++)
		{
			if (arr[j] < arr[i])
			{
				dp[i] = max(dp[i], dp[j] + 1);
			}
		}
		if (dp[i] > ans)
			ans = dp[i];
	}
	cout << ans << endl;
}

스트릭 끊김

최근 문제 풀이에 현타가 와서 아무것도 안 하고 놀러다녔다. 그러다가 라매개발자님의 영상을 보고 코딩하고 싶다는 생각이 들었다. 햄찌의 든든한 위로까지 들으니까 의욕 샘솟음 공부하기 싫을 땐 cs면접 준비나 조금씩 해야겠다.

하반기 다됐는데 아직도 상반기로 남아있는 내 깃허브ㅎㅎ 새로 만들어야 할 이유가 딱히 없어서 그대로 쓰고있다. 여유있을 때 저장소 이름 바꿔야지~~

profile
겉촉속촉

0개의 댓글