가장 긴 감소하는 부분 수열

BiBi·2021년 1월 15일
0

코딩테스트연습

목록 보기
9/66
#include <stdio.h>

int p[1001];
int dp[1001];

int get_max(int a, int b) {
	return a > b ? a : b;
}

int main() {
	//freopen("input.txt", "rt", stdin);
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		scanf("%d", &p[i]);
		dp[i] = 1;
	}
	int m = 0;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= i; j++) {
			if (p[i] < p[j]) {
				dp[i] = get_max(dp[i], dp[j] + 1);
				//printf("dp[%d]=%d\n", i, dp[i]);
			}
		}
		m = get_max(m, dp[i]);
		
	}
	printf("%d", m);

	return 0;
}
profile
Server Network Engineer

0개의 댓글