JAVA/Coding Test
[JAVA] 백준 2002 추월_반복문(포인터 설정)
오늘도개발
2024. 6. 7. 17:41
https://www.acmicpc.net/problem/2002
접근 :
- 들어간 차량 순서대로 배열에 저장한다.
- 나가는 차량을 체크해서 들어간 차량과 일치하지 않으면 Set에 저장 후 다음 차량으로 넘어간다.
- 차량을 체크하기전 들어온 차량이 추월하였는지 확인하고 추월하지 않은 차량까지 flag를 이동시킨다.
코드구현 :
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] inputs = new String[n];
for(int i= 0 ; i < n ; i++) inputs[i] = br.readLine();
String now;
int flag = 0;
Set<String> madmax = new HashSet<>();
for(int j = 0 ; j < n ; j++){
now = br.readLine();
//만약 현재 차량이 추월 차랑이면 추월되지 않는 차량까지 flag 이동
while(madmax.contains(inputs[flag])) flag++;
//만약 순번이 일치하는 차량인 경우 flag + 1 후 다음 출차 차량으로 이동
if(inputs[flag].equals(now)){
flag++;
continue;
}
madmax.add(now);
}
System.out.println(madmax.size());
br.close();
}
}