[백준] PS/Java [실랜디]

[백준 2002] 추월 - JAVA

SH3542 2025. 4. 25. 22:53

https://www.acmicpc.net/problem/2002

 

재미있는 문제다.

 

N=1000이기에 N^2 내에서 다양한 방법으로 구할 수 있다.

나는 l1, l2 맨 앞의 원소를 비교해서, 불일치 시 O(N)으로 직접 빼주는 방법을 썼다.

불일치는, 현재 차(l2에 있는)는 추월했음을 의미하기 때문이다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

class Main {

  public static void main(String[] args) throws IOException {

    int ans = 0;

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int N = Integer.parseInt(br.readLine());

    List<String> l1 = new ArrayList<>();
    List<String> l2 = new ArrayList<>();

    for (int i = 0; i < N; i++) {
      l1.add(br.readLine());
    }
    for (int i = 0; i < N; i++) {
      l2.add(br.readLine());
    }

    for (int i = 0; i < N; i++) {

      if (l1.get(0).equals(l2.get(0))) {
        l1.remove(0);
        l2.remove(0);
      } else {
        ans++;
        l1.remove(l2.get(0));
        l2.remove(0);
      }
    }

    System.out.println(ans);
  }
}