[백준] 2002 추월 - Java
들어오는 차와 나가는 차를 해시맵으로 입력받은 후, 키 값들을 리스트로 빼내서 입력 순서대로 정렬해준다.
나가는 차와 들어온 차를 순서대로 비교해, 같지 않을 때와 같을 때를 따로 처리해줬다.
비교할 때 String에 대한 비교이니 equals메서드를 사용하자.
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
HashMap<String, Integer> in = new HashMap<>();
HashMap<String, Integer> out = new HashMap<>();
for(int i=0; i<N; i++){
String car = br.readLine();
in.put(car, i);
}
for(int i=0; i<N; i++){
String car = br.readLine();
out.put(car, i);
}
LinkedList<String> in_car = new LinkedList<>(in.keySet());
LinkedList<String> out_car = new LinkedList<>(out.keySet());
Collections.sort(in_car, new Comparator<String>(){
public int compare(String o1, String o2){
if(in.get(o1) > in.get(o2)){
return 1;
}else if(in.get(o1) < in.get(o2)){
return -1;
}else{
return 0;
}
}
});
Collections.sort(out_car, new Comparator<String>(){
public int compare(String o1, String o2){
if(out.get(o1) > out.get(o2)){
return 1;
}else if(out.get(o1) < out.get(o2)){
return -1;
}else{
return 0;
}
}
});
int cnt = 0;
while(true){
if(in_car.isEmpty() || out_car.isEmpty()){
break;
}
if(out_car.peekFirst().equals(in_car.peekFirst())){
String tmp = out_car.pollFirst();
in_car.remove(tmp);
}else{
cnt++;
String tmp = out_car.pollFirst();
in_car.remove(tmp);
}
}
System.out.println(cnt);
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 21939 문제 추천 시스템 Version 1 - Java (0) | 2022.04.23 |
---|---|
[백준] 1351 무한수열 - Java (0) | 2022.04.23 |
[백준] 19583 싸이버개강총회 - Java (0) | 2022.04.23 |
[백준] 13414 수강신청 - Java (0) | 2022.04.22 |
[백준] 2910 빈도 정렬 - Java (0) | 2022.04.21 |
댓글
이 글 공유하기
다른 글
-
[백준] 21939 문제 추천 시스템 Version 1 - Java
[백준] 21939 문제 추천 시스템 Version 1 - Java
2022.04.23 -
[백준] 1351 무한수열 - Java
[백준] 1351 무한수열 - Java
2022.04.23 -
[백준] 19583 싸이버개강총회 - Java
[백준] 19583 싸이버개강총회 - Java
2022.04.23 -
[백준] 13414 수강신청 - Java
[백준] 13414 수강신청 - Java
2022.04.22