본문 바로가기
알고리즘 문제풀이/인프런

[알고리즘] 5-7 교육과정 설계 - Queue (인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의)

by jeonghaemin 2021. 6. 5.
728x90

인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 풀이 코드를 정리하고 있습니다.

풀이 코드

  • Queue 자료구조를 사용하여 풀이
package inflearn.stack_queue;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;

//교육과정 설계
public class Main5_7 {

    public static String solution(String required, String subjects) {
        Queue<Character> queue = new LinkedList<>();

        for (char c : required.toCharArray()) {
            queue.offer(c);
        }

        for (char c : subjects.toCharArray()) {
            if (queue.contains(c)) {
                //교육과정에 과목이 포함되어있지만, 순서가 다르다면
                if (queue.poll() != c) { 
                    return "NO";
                }
            }
        }

        if (queue.isEmpty()) {
            return "YES";
        } else { 
            //필수 과목중 교육과정에 포함되지 않는 과목이 있을때
            return "NO";
        }
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String required = br.readLine();
        String subjects = br.readLine();

        System.out.println(solution(required, subjects));

        br.close();
    }
}

댓글