BOJ_G5_2565
π [G5_2565] μ κΉμ€
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Main {
static int[] dp;
static int[][] wire;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
dp = new int[N];
wire = new int[N][N];
for(int i=0; i<N; i++){
st = new StringTokenizer(br.readLine()," ");
wire[i][0] = Integer.parseInt(st.nextToken());
wire[i][1] = Integer.parseInt(st.nextToken());
}
// μ€λ¦μ°¨μμΌλ‘ μ λ ¬
Arrays.sort(wire, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0]-o2[0];
}
});
// νμ΄ λ°©λ²
// μ°κ²°ν μ μλ μ΅λ μ μ κ°μλ₯Ό ꡬν΄μ μ΄ μ μ κ°μμμ λΉΌμ£Όλ©΄ μ΅μ μ μ μμ μλ₯Ό ꡬν μ μλ€.
// μ΅λκ° ( μ°κ²°κ°λ₯ν )
int max = 0;
// iλ²μ§Έ Aμ λ΄λλ₯Ό κ°μ€μΌλ‘ μ°κ²°κ°λ₯ν κ°μ νμ, μ΅λκ° μ°ΎκΈ°
for(int i=0; i<N; i++){
max = Math.max(max, recur(i));
}
// μ 체 μ μ κ°μ - μ΅λκ° = μ΅μλ‘ μμ λ μ μ μ
System.out.println(N - max);
}
static int recur(int N) {
// μ²μ νμνλ μ λ΄λλΌλ©΄
if(dp[N] == 0){
// μ΅μκ°μ 1λ‘ μ΄κΈ°ν
dp[N] = 1;
// Aμ Nλ²μ§Έμ μ΄νμ μ λ΄λλ€ λΉκ΅
for(int i=N+1; i<dp.length;i++){
// λ§μ½ μ°κ²°ν μ μμΌλ©΄
if(wire[N][1] < wire[i][1]){
// dp λ°°μ΄μ λ ν° κ°μ μ μ₯ν΄μ€λ€.
// A μ λ΄λμ Nλ²μ§Έ μ μ μ΄ μ°κ²°λμ΄μλ Bμ λ΄λ보λ€
// Aμ iλ²μ§Έ μ λ΄λμ μ μ μ΄ μ΄μ΄μ§ Bμ λ΄λκ° λ€μμμ κ²½μ°
// μ μ μ μ€μΉν μ μλ€.
dp[N] = Math.max(dp[N], recur(i) + 1);
}
}
}
return dp[N];
}
}
π€ λμ μκ°
λ°λ‘λ₯Ό λ€ λ£μμ§λ§ ν΅κ³Όν΄μ λ체 λκ° λ¬Έμ μ§ μμλ³΄λ€ νλ¦° κ²μ κΉ¨λ¬μ λ¬Έμ μ΄λ€..
λ¨Όμ μ²μ μκ°ν λ°©λ²μ
- μμ μ’νλ₯Ό μ€λ¦μ°¨μμΌλ‘ μ λ ¬νλ€.
- κ° μ’νλ§λ€ κ²ΉμΉλ μ μ κ°μλ₯Ό ꡬνλ€.
- μ΅λ κ°μμΈ μ μ μμ ν΄ κ°λ©° μ 체 κ²ΉμΉλ μ μ κ°μκ° 0μΌ λ κΉμ§ λ°λ³΅νλ€.
- λ°λ³΅νλ νμλ₯Ό μΉ΄μ΄ν ν΄μ μΆλ ₯ν΄μ€λ€.
μ΄ λ°©λ²μμ κ°μ₯ ν° μλͺ»μ μ΅λλ‘ κ²ΉμΉλ μ μ΄ μ¬λ¬κ° λμ¬λ 무μμ μμ νλμ λ°λΌ μ΅μ’
κ°μ΄ λ¬λΌμ§λ€λ μ μ΄λ€.
κ·Όλ° .. λ§μ μ§λ¬Έ μμ λ°λ‘λ₯Ό ν΄λ΄€λλ° λλ μ λλ‘ λμμ.. λ§μ μ€ μμλλ° λ°©λ² μμ²΄κ° νλ¦° κ²μ΄μλ€..
κ·Έλμ μ°Ύμλ³Έ κ²°κ³Ό λ°©λ²μ dpλ₯Ό μ¬μ©νλ κ²μ΄λ€..
μ½κ° μ κ·Ό λ°©λ²μ΄ λ€λ₯Έ κ²μ΄ μμ ν μ μ μ μ°Ύλ κ²μ΄ μλ μ΅λλ‘ μ°κ²°ν μ μλ μ μ μ μ°Ύμ μ΄ μ μ μμ λΉΌλ κ²μ΄λ€.
κ·Έλμ λ©λͺ¨λ¦¬μ μ΄μ
μ μ΄μ©ν΄ μ°κ²°ν μ μλ μ΅λ μ μ μ κ΅¬ν΄ μ΄ μ μ μμ λΉΌμ£Όλ©΄ λλ€.
μμ.. dpλ μ²μμ μ κ·Όμ λͺ»νλ©΄β¦ μ΄λ ΅λ€.. γ