교육과정 설계

Seungmin Lim·2022년 2월 12일
0

코딩문제연습

목록 보기
45/63

문제

나의풀이

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에 존재하는지 확인 할 수 있다.

0개의 댓글