본문 바로가기
Problem Solving/Baekjoon

[백준] 14713 앵무새 - Data Structure / Java

by graycode 2022. 12. 17.

 문제 링크

 

14713번: 앵무새

자가용 비행기를 타고 세계 일주를 하던 pps789와 cseteram은 어느 날 엔진 고장으로 인해 이름 모를 섬에 불시착하게 된다. 그들은 이 섬을 탐험하는 도중 아주 신기한 사실을 알게 되었는데, 바로

www.acmicpc.net

 

 풀이 과정

 

 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class Main {

    static Queue<String>[] arr;
    static StringTokenizer st;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());

        arr = new LinkedList[n];
        for (int i = 0; i < n; i++) {
            arr[i] = new LinkedList<>();
            st = new StringTokenizer(br.readLine());
            while (st.hasMoreTokens())
                arr[i].offer(st.nextToken());
        }

        bw.write(check(br.readLine()) ? "Possible" : "Impossible");
        bw.flush();
    }

    private static boolean check(String input) {
        st = new StringTokenizer(input);
        while (st.hasMoreTokens()) {
            String word = st.nextToken();
            boolean flag = false;
            for (Queue<String> q : arr) {
                if (!q.isEmpty() && word.equals(q.peek())) {
                    q.poll();
                    flag = true;
                    break;
                }
            }
            if (!flag)
                return false;
        }

        for (Queue<String> q : arr) {
            if (!q.isEmpty())
                return false;
        }

        return true;
    }

}

댓글