백준 2002 java

magicdrill·2024년 11월 7일
0

백준 문제풀이

목록 보기
482/655

백준 2002 java

코딩 테스트 응시 중 C++ 말고 Java 자료구조의 부족함에 대해 뼈저리게 느꼈다. Java 자료구조부터 다시 해서 그래프, 다익스트라 등으로 다시 공부하겠다.
자바에서의 Queue와 Deque에 대해 알아봤다. C++보다 유연성이 있다. 나중에 다시 정리한다.

import java.util.*;

public class bj2002 {
    static Scanner scanner = new Scanner(System.in);
    static Queue<String> inputCar = new LinkedList<>();
    static Queue<String> outputCar = new LinkedList<>();

    public static void main(String[] args) {
        inputData();
        System.out.println(findAnswer());

        scanner.close();
    }

    public static void inputData(){
        System.out.println("inputData()");
        int N, i;
        String carNum;

        N = scanner.nextInt();
        for(i = 0; i < N; i++){
            carNum = scanner.next();
            inputCar.offer(carNum);
        }
        for(i = 0; i < N; i++){
            carNum = scanner.next();
            outputCar.offer(carNum);
        }
    }

    public static int findAnswer(){
        System.out.println("findAnswer()");
        int answer = 0;
        String temp;

        while(!outputCar.isEmpty()){
            temp = outputCar.poll();
            System.out.println("현재 ouputCar " + temp);

            //!((inputCar의 가장 앞 요소).equals(outputCar의 가장 앞 요소)가 false) => true
            if(!inputCar.peek().equals(temp)){
                answer++;
                System.out.println("false인 경우 inputCar 현재 요소 " + inputCar.peek());
                inputCar.remove(temp);//자바에서는 remove를 통해 중간 요소도 제거 가능
                System.out.print("inputCar에 들어있는 요소 : ");
                for(String str : inputCar){
                    System.out.print(str + " ");
                }
                System.out.println();
                System.out.println("answer : "+ answer);
            }
            else{
                System.out.println("true인 경우 inputCar 현재 요소 " + inputCar.peek());
                inputCar.poll();
            }
            System.out.println();
        }

        return answer;
    }
}

0개의 댓글