๋ฌธ์ (์ถ์ฒ: 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๋ฅผ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 1699_์ ๊ณฑ์์ ํฉ (0) | 2026.02.09 |
|---|---|
| [Baekjoon] 4097_์์ต (0) | 2026.01.30 |
| [Baekjoon] 14501_ํด์ฌ (0) | 2026.01.27 |
| [Baekjoon] 6221_The Bale Tower (1) | 2026.01.26 |
| [Baekjoon] 10571_๋ค์ด์๋ชฌ๋ (0) | 2026.01.23 |