[문제풀이] 05-07. 교육 과정 설계

𝒄𝒉𝒂𝒏𝒎𝒊𝒏·2023년 11월 2일
0

인프런, 자바(Java) 알고리즘 문제풀이

Stack, Queue(자료구조) - 0507. 교육 과정 설계


🗒️ 문제


🎈 나의 풀이

	private static String solution(String str1, String str2) {
        Queue<Character> Q = new LinkedList<>();

        for(char c : str1.toCharArray()) {
            Q.add(c);
        }

        for(char c : str2.toCharArray()) {
            if(!Q.isEmpty() && Q.peek() == c) Q.remove();
            if(Q.isEmpty()) return "YES";
        }

        return "NO";
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str1 = sc.nextLine();
        String str2 = sc.nextLine();
        System.out.println(solution(str1, str2));
    }


🖍️ 강의 풀이

    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)){
				if(x!=Q.poll()) return "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));
	}


💬 짚어가기

해당 문제는 Queue를 이용하여 쉽게 풀 수 있다. 나의 풀이에서는 정해진 교육 과정을 큐에 저장하고
설계한 교육 과정을 순회하며 큐의 요소와 일치하면 제거하도록 구성했다.

강의에서는 정해진 교육 과정을 큐에 저장하고, 설계한 교육 과정을 순회하며 해당 과목이 큐에 있을 때,
큐에서 꺼내온(pull) 요소와 일치하지 않으면 NO를 반환하도록 수성했다.

profile
𝑶𝒏𝒆 𝒅𝒂𝒚 𝒐𝒓 𝒅𝒂𝒚 𝒐𝒏𝒆.

0개의 댓글