Algorithm/inflearn

교육과정설계

마닐라 2021. 9. 19. 23:02

 

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;


public class Main {
    public String solution(String s, String t) {
        String answer = "YES";

        //필수 과목의 순서가 어긋났는지만 판단하면 된다.
        //큐에 필수과목 순서대로 미리 넣어놓는다.
        //나머지 수업설계를 탐색
        //큐에 해당 수업이 있는지 + 큐의 맨 앞인지 확인
        //true면 pop 시키고 그 다음을 진행
        //큐가 비어있으면 true
        
        //C B는 바로 꺼내진다.
        //D는 큐에 포함 X 그 다음 A 꺼낸다.
        //CBA가 아니라 BCA면 포함은 되어있으나 poll한 값이 같지 않으므로(순서에 어긋났으므로)
        //return "NO"인 것!
        Queue<Character> Q = new LinkedList<>();
        for(char x : s.toCharArray()) Q.offer(x);
        for(char x : t.toCharArray()) {
            if(Q.contains(x)) {
                //꺼내고나서 값을 리턴함!
                //꺼내고나서 값을 리턴했는데 같지 않으면 바로 NO를 리턴해주면 된다.
                if(x!=Q.poll()) return "NO";
            }
        }

        if(!Q.isEmpty()) answer = "NO";

        return answer;
    }

    public static void main(String[] args){
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String s = kb.next();
        String t = kb.next();

        System.out.print(T.solution(s, t));
    }
}

'Algorithm > inflearn' 카테고리의 다른 글

#선택 정렬  (0) 2021.09.20
★응급실  (0) 2021.09.19
공주 구하기  (0) 2021.09.19
★쇠막대기  (0) 2021.09.19
후위식 연산  (0) 2021.09.17