ALGORITHM

[JAVA] 알고리즘 : Queue- 교육과정설계

연듀 2022. 7. 14. 16:07
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)){ // 큐에 있으면 필수과목
                if(x!=Q.poll()) return "NO"; // 큐에 있는 첫 과목이 아니면
                // poll()은 꺼내고 리턴받음
            }
        }
        if(!Q.isEmpty()) return "NO"; // 큐가 비어있지 않으면
        return answer;
    }
    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);
        String a=sc.next();
        String b=sc.next();
        System.out.println(T.solution(a,b));
    }
}

 

 

필수이수과목들을 큐에 넣는다. 

수업설계한 과목들을 차례로 돌며 큐에 있고 큐에서 poll()한 값(첫번째 과목)이면 필수이수과목이다.

그렇게 하나씩 꺼내 필수이수과목 순서와 같은지 확인한다.

수업설계한 과목들을 다 돌고도 큐가 비어있지 않아도 NO를 리턴한다.