본문 바로가기
Problem Solving

Baekjoon | 가장 긴 바이토닉 부분 수열

2024. 11. 28.

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


 

문제 

바이토닉 수열: 수열 S가 어떤 수 Sk를 기준으로 S1 < S2 < ... Sk-1 < Sk > Sk+1 > ... SN-1 > SN을 만족하는 경우

수열 A가 주어졌을 때, 그 수열의 부분 수열 중 바이토닉 수열이면서 가장 긴 수열의 길이를 구하기

문제 해결 방법

이 문제는 지난번에 LIS 문제를 푼 기억을 가지고 접근했다.

처음에는 LIS를 구하여 max 값을 가지는 인덱스를 기준으로, 마지막 인덱스부터 가장 긴 증가하는 수열을 구하였다. 

그러나 아래 풀이 중 ! 와 같이 위 풀이는 모든 경우를 해결 할 수 없다.

결국 각 인덱스 별로 LIS + LDS를 구하는 것이 핵심으로, 더한 값에서 중복된 인덱스 1(LIS 한번 + LDS 한번 = 2)을 감소시키면 답을 구할 수 있다.

제출 코드

 

'Problem Solving' 카테고리의 다른 글

Algorithm | Two Pointers  (0) 2025.02.18
Baekjoon | 세준세비  (0) 2024.11.27
Leetcode | largest-number-after-digit-swaps-by-parity  (0) 2024.11.26
Baekjoon | 가장 긴 감소하는 부분 수열  (0) 2024.11.23
Baekjoon | 돌게임  (0) 2024.11.23

댓글