import java.util.*;
class Main {
public String solution(String a, String b) {
String answer = "YES";
Queue<Character> q = new LinkedList<>();
for(char x : a.toCharArray()) q.offer(x);
for(char x : b.toCharArray()) {
if(q.contains(x) && q.peek() == x) q.poll();
}
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));
}
}
++ for문 다른 방법
for(char x : b.toCharArray()) {
if(q.contains(x)){
//poll한 값과 x가 다르면
if(x!=q.poll()) return "NO";
}
}
필수과목을 순서대로 Queue에 넣어두고,
foreach문을 통해 x가 Queue에 있고, 가장 앞의 알파벳이 x와 같다면,
필수과목 + 순서도 맞기 때문에, Queue에서 poll()시킨다.
만약 Queue가 모두 비워지게되면 모든 필수과목을 순서에 맞게 짠것이다.
Queue.contains(x) 를 통해 x값이 queue에 존재하는지 확인 할 수 있다.