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));
}
}