Algorithm/문제

42. 교육 과정 설계

챛채 2023. 12. 4. 17:37

 

중복 상관 없이 필수 과목 순서만 유지되면 된다.

큐에 미리 필수 과목을 순서대로 offer 해두고 String을 하나하나 탐색하면서 Q.contain(x)로 확인해본다.

큐 안에 있으면 수강한 거니까 poll 시키고 그 다음 진행한다.

 

import java.util.*;

public class Main {

    public String solution(String need, String plan) {
        String answer = "YES"; //초기화
        Queue<Character> Q = new LinkedList<>();
        for(char x : need.toCharArray()) Q.offer(x);//큐에 필수 과목 넣어두기
        for(char x : plan.toCharArray()) {
            if(Q.contains(x)){//x가 큐에 있는지 없는지 확인
                if(x != Q.poll()) return "NO"; //큐의 맨 앞자료를 꺼내서 확인해보고 아니면 No
            }
        }
        if(!Q.isEmpty()) return "NO";//필수 과목 이수 안 함
        return answer;
    }
   public static void main(String[] args){
       Main T = new Main();
       Scanner kb = new Scanner(System.in);
       String a = kb.next(); //필수 과목 순서
       String b = kb.next(); //수업 계획 순서
       System.out.println(T.solution(a,b));
   }
}