
-Code
import java.io.*;
import java.util.*;
public class BOJ18353 {
public static void main(String[] args) throws Exception {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] combarPower = new int[n + 1];
for (int i = 1; i <= n; i++) {
combarPower[i] = Integer.parseInt(st.nextToken());
}
int[] dp = new int[n + 1];
// LIS 알고리즘
for (int i = 1; i <= n; i++) {
dp[i] = 1;
for (int j = 0; j < i; j++) {
if (combarPower[i] < combarPower[j]) {
dp[i] = Math.max(dp[j] + 1, dp[i]);
}
}
}
// 최대 길이 구하기
int answer = 0;
for (int len : dp) {
answer = Math.max(len, answer);
}
System.out.println(n - answer);
}
}
LIS 알고리즘을 응용해 풀어보았습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 34311번 QWERTY (0) | 2026.01.13 |
|---|---|
| [백준/Java] 14494번 다이나믹이 뭐예요? (0) | 2026.01.12 |
| [백준/Java] 11060번 점프 점프 (0) | 2026.01.12 |
| [프로그래머스/Java] H-Index (0) | 2026.01.12 |
| [백준/Java] 16306번 Cardboard Container (0) | 2026.01.12 |