[백준] 11053번 - 가장 긴 증가하는 부분 수열 (C언어) [Silver2]

2023. 6. 2. 17:35·알고리즘

input output
6
10 20 10 30 20 50
4

해당 문제는 동적 계획법을 사용하여 문제를 해결 하였다. 입력된 배열을 탐색하는 과정에서 자기 자신보다 작은 값을 찾는 경우에 해당 인덱스를 저장하고 dp 배열에 저장하였다. 수열의 길이는 dp 배열에서 가장 최댓값을 가지는 수의 인덱스이므로 가장 큰 값을 업데이트 해주면 문제 해결이 가능하다. 

 

전체 소스 코드는 아래와 같다.

#include <stdio.h>
#pragma warning(disable:4996)

int main() {
	int arr[1001];
	int dp[1001] = {0,}; // Dynamic Programming Array

	int max = 0;
	int n;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
		scanf("%d", &arr[i]);

	for (int i = 0; i < n; i++) { // 동적 계획법 사용
		int min = 0;
		for (int j = 0; j < i; j++) {
			if (arr[i] > arr[j]) // 최솟값을 가지는 인덱스 찾기
				if (min < dp[j])
					min = dp[j];
		}

		dp[i] = min + 1; // dp 배열에 인덱스 저장
		if (max < dp[i]) // 최댓값 = 수열의 길이
			max = dp[i];
	}

	printf("%d", max);
	return 0;
}

[11053번]

https://www.acmicpc.net/problem/11053

 

11053번: 가장 긴 증가하는 부분 수열

수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이

www.acmicpc.net

 

[github]

https://github.com/MinWook6457

 

MinWook6457 - Overview

MinWook6457 has 18 repositories available. Follow their code on GitHub.

github.com

 

 

'알고리즘' 카테고리의 다른 글

[경시대회] 소믈리에 구름이  (0) 2024.05.08
[백준] 1300번 - K번째 수 (C언어) [Gold2]  (0) 2023.06.06
[백준] 1517번 - 버블 소트 (C언어) [Platinum5]  (0) 2023.06.01
[백준] 2042번 - 구간 합 구하기 (C언어) [Gold1]  (0) 2023.05.31
[백준] 1918번 - 후위 표기식 (C언어) [Gold2]  (0) 2023.05.30
'알고리즘' 카테고리의 다른 글
  • [경시대회] 소믈리에 구름이
  • [백준] 1300번 - K번째 수 (C언어) [Gold2]
  • [백준] 1517번 - 버블 소트 (C언어) [Platinum5]
  • [백준] 2042번 - 구간 합 구하기 (C언어) [Gold1]
min._.uuk_
min._.uuk_
하루 하나 기록하기
  • min._.uuk_
    기록하는 습관
    min._.uuk_
  • 전체
    오늘
    어제
    • 분류 전체보기 (33)
      • 알고리즘 (15)
      • 자바 스크립트 (2)
      • 인실리코젠 (15)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    백준 #동적계획법 #dp #백트래킹 #dfs
    Apache #POI #JAVA #maven
    백준 #BOJ #스택 #수열
    #BOJ #백준 #10989번 #C언어 #카운팅정렬 #정렬
    인실리코젠 #크롤링 #SpringBoot #MVC #jQuery
    백준 #1407번 #재귀함수
    백준 #MST #최소비용신장트리 #크루스칼 #그리디 #알고리즘
    백준 #세그먼트 트리 #구간합 #c언어 #골드1 #탐색
    JS #테트리스 #HTML #CSS #추억의 게임
    백준 #후위표기식 #스택 #중위표기식 #우선순위 #1918번
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
min._.uuk_
[백준] 11053번 - 가장 긴 증가하는 부분 수열 (C언어) [Silver2]
상단으로

티스토리툴바