๐Algorithm/๐ฅBaekjoon
[Baekjoon] 18353_๋ณ์ฌ ๋ฐฐ์นํ๊ธฐ
๋ฟ์ผ._.
2026. 1. 29. 11:53
๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/18353)
< ๋ณ์ฌ ๋ฐฐ์นํ๊ธฐ >
๋ฌธ์ ํ์ด
dp๋ฅผ ํ์ฉํ์ฌ ๋จ์์๋ ๋ณ์ฌ์ ์๊ฐ ์ต๋๊ฐ ๋๋๋ก ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class _18353_ { // ๋ณ์ฌ ๋ฐฐ์นํ๊ธฐ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(bf.readLine());
int arr[] = new int[n];
int dp[] = new int[n];
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
dp[i] = 1;
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[i]) {
dp[i] = Math.max(dp[i], dp[j] + 1);
}
}
}
int max = 0;
for (int i = 0; i < n; i++) {
max = Math.max(max, dp[i]);
}
System.out.println(n - max);
}
}
๋ณ์)
n : ๋ณ์ฌ ์
arr : ๋ณ์ฌ์ ์ ํฌ๋ ฅ
dp : ๋จ์์๋ ๋ณ์ฌ์ ์
max : ๋จ์์๋ ๋ณ์ฌ์ ์ต๋ ์
๋ณ์ฌ ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋ณ์ฌ ์๋งํผ ๋ณ์ฌ์ ์ ํฌ๋ ฅ์ ์ ๋ ฅ๋ฐ์ arr์ ์ ์ฅํ๊ณ dp๋ฅผ 1๋ก ์ด๊ธฐํํ๋ค. ํ์ฌ ์์น์์ ์์ ์ดํด๋ณด๋ฉฐ ์ ํฌ๋ ฅ์ด ์๋ณด๋ค ์๋ค๋ฉด ๊ฐ์ ์ ๋ฐ์ดํธํ๋ค.
์ต์ข dp๋ฅผ ์ดํด๋ณด๋ฉฐ ์ต๋๊ฐ์ ๊ตฌํด n-max๋ฅผ ์ถ๋ ฅํ๋ค.
