본문 바로가기
OJ 문제풀이/BOJ

BOJ #11053 가장 긴 증가하는 부분 수열

by EXE_김건형 2019. 10. 7.

문제 원본 :

 

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

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

www.acmicpc.net

 

정답 소스코드

 

풀이법은 다음과 같습니다.

두 개의 값을 저장할 배열을 선언합니다.

하나는 입력받는 숫자를 저장하는 배열, 다른 하나는 정답을 저장할 배열입니다.

배열에 저장된 값들을 차례대로 탐색하면서 자신보다 작은 값을 찾았다면 그 지점에서의 수열의 길이를 불러옵니다.

단, 불러올 때에 지금까지 가지고 있던 길이보다 더 긴 경우에만 값을 가져옵니다.

위와 같은 공정을 통해 자신을 포함하면서 지금까지 저장된 가장 긴 수열의 길이를 불러올 수 있습니다.

그 후에 자신을 포함시켜 주고 정답을 업데이트해주면 우리가 원하는 정답을 얻을 수 있습니다. 

'OJ 문제풀이 > BOJ' 카테고리의 다른 글

BOJ #1976 여행 가자  (0) 2019.09.24
BOJ #10026 적록색약  (0) 2019.09.23
BOJ #1932 정수 삼각형  (0) 2019.09.23
BOJ #6198 옥상 정원 꾸미기  (0) 2019.09.22

댓글