-
https://www.acmicpc.net/problem/11054
11054번: 가장 긴 바이토닉 부분 수열
첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000)
www.acmicpc.net
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%2011054
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
해당 문제는 순열이 주어졌을 때 가장 긴 바이 토닉 순열의 길이를 구하는 문제다.
바이 토닉 순열은 쭉 증가하거나 쭉 감소하거나 혹은 증가하고 감소하는 순열이다.
해당 문제는 dp를 이용했고, dp 배열을 2개를 만들어서 증가하는 dp와 감소하는 dp로 구분하여 만든 뒤
반복문을 통해 크기비교를 해서 뒤의 값이 앞에값보다 크고 dp값이 작으면 해당 값을 갱신해주는
방식으로 문제를 해결했다.
반복문을 통해 두 dp를 더한 뒤 -1을 해준 값의 최댓값을 출력해서 해결했다.
-1을 해주는 이유는 자기 자신이 증가하는 부분과 감소하는 부분에서 두 번 체크되기 때문에
-1을 해준다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 1890 점프 JAVA (0) 2021.11.15 Baekjoon 3273 두 수의 합 JAVA (0) 2021.11.15 Baekjoon 2583 영역 구하기 JAVA (0) 2021.11.15 Baekjoon 1309 동물원 JAVA (0) 2021.11.15 Baekjoon 5052 전화번호 목록 JAVA (0) 2021.11.15 댓글