중복 상관 없이 필수 과목 순서만 유지되면 된다.
큐에 미리 필수 과목을 순서대로 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));
}
}
'Algorithm > 문제' 카테고리의 다른 글
41. 공주 구하기 (2) | 2023.10.10 |
---|---|
40. 쇠막대기 (1) | 2023.10.10 |
39. 후위식 연산(postfix) (0) | 2023.09.25 |
38. 크레인 인형뽑기 (카카오) (0) | 2023.09.25 |
37. 괄호 문자 제거 (0) | 2023.09.20 |