๐ก Info
๋ด์ฉ
N๋ช ์ ๋ณ์ฌ๊ฐ ๋ฌด์์๋ก ๋์ด๋์ด ์๋ค. ๊ฐ ๋ณ์ฌ๋ ํน์ ํ ๊ฐ์ ์ ํฌ๋ ฅ์ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ, ๋ณ์ฌ๋ฅผ ๋ฐฐ์นํ ๋๋ ์ ํฌ๋ ฅ์ด ๋์ ๋ณ์ฌ๊ฐ ์์ชฝ์ ์ค๋๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์น๋ฅผ ํ๊ณ ์ ํ๋ค. ๋ค์ ๋งํด ์์ชฝ์ ์๋ ๋ณ์ฌ์ ์ ํฌ๋ ฅ์ด ํญ์ ๋ค์ชฝ์ ์๋ ๋ณ์ฌ๋ณด๋ค ๋์์ผ ํ๋ค.
๋ํ ๋ฐฐ์น ๊ณผ์ ์์๋ ํน์ ํ ์์น์ ์๋ ๋ณ์ฌ๋ฅผ ์ด์ธ์ํค๋ ๋ฐฉ๋ฒ์ ์ด์ฉํ๋ค. ๊ทธ๋ฌ๋ฉด์๋ ๋จ์์๋ ๋ณ์ฌ์ ์๊ฐ ์ต๋๊ฐ ๋๋๋ก ํ๊ณ ์ถ๋ค.
์๋ฅผ ๋ค์ด, N=7์ผ ๋ ๋์ด๋ ๋ณ์ฌ๋ค์ ์ ํฌ๋ ฅ์ด ๋ค์๊ณผ ๊ฐ๋ค๊ณ ๊ฐ์ ํ์.
์ด ๋ 3๋ฒ ๋ณ์ฌ์ 6๋ฒ ๋ณ์ฌ๋ฅผ ์ด์ธ์ํค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ๋จ์์๋ ๋ณ์ฌ์ ์๊ฐ ๋ด๋ฆผ์ฐจ์์ ํํ๊ฐ ๋๋ฉฐ 5๋ช
์ด ๋๋ค. ์ด๋ ๋จ์์๋ ๋ณ์ฌ์ ์๊ฐ ์ต๋๊ฐ ๋๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ณ์ฌ์ ๋ํ ์ ๋ณด๊ฐ ์ฃผ์ด์ก์ ๋, ๋จ์์๋ ๋ณ์ฌ์ ์๊ฐ ์ต๋๊ฐ ๋๋๋ก ํ๊ธฐ ์ํด์ ์ด์ธํด์ผ ํ๋ ๋ณ์ฌ์ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐ฅ์ ๋ ฅ ์กฐ๊ฑด
7
15 11 4 8 5 2 4
๐ค์ถ๋ ฅ ์กฐ๊ฑด
2
์ค์ ํ์ด ์๊ฐ : 12๋ถ
์ ๋ ฅ
๊ณ์ฐ
์ถ๋ ฅ
import java.util.*;
public class Main {
static int N;
static int[] d;
static int maxSol;
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
Integer[] arr = new Integer[N];
for(int i=0; i<N; i++){
arr[i] = sc.nextInt();
}
Arrays.sort(arr, Collections.reverseOrder());
d = new int[N];
Arrays.fill(d, 1);
for(int i = 1; i<N; i++){
for(int j = 0; j< i; j++) {
if(arr[j] > arr[i]){
d[i] = Math.max(d[i], d[j]+1);
}
}
}
for(int i=0; i<N; i++){
maxSol = Math.max(maxSol, d[i]);
}
System.out.println(N - maxSol);
}
}
//before
Arrays.sort(arr, Collections.reverseOrder());
d = new int[N];
Arrays.fill(d, 1);
//after
d = new int[N];
Arrays.fill(d, 1);
์ค์ ํ์ด ์๊ฐ : 20๋ถ(์ฒซ ํ์ด ์๊ฐ ํฌํจ)
์ ๋ ฅ
๊ณ์ฐ
์ถ๋ ฅ
import java.util.*;
public class Main {
static int N;
static int[] d;
static int maxSol;
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
Integer[] arr = new Integer[N];
for(int i=0; i<N; i++){
arr[i] = sc.nextInt();
}
d = new int[N];
Arrays.fill(d, 1);
for(int i = 1; i<N; i++){
for(int j = 0; j< i; j++) {
if(arr[j] > arr[i]){
d[i] = Math.max(d[i], d[j]+1);
}
}
}
for(int i=0; i<N; i++){
maxSol = Math.max(maxSol, d[i]);
}
System.out.println(N - maxSol);
}
}