문제 원본 :
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 |
댓글