[인프런 알고리즘] Chapter 5, 7번 문제(교육과정 설계)자료구조 & 알고리즘/Inflearn2024. 8. 13. 14:36
Table of Contents
이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 (김태원)의 문제입니다.
문제 설명
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
public class sec05_07 {
public static String solution(String sequence, String str) {
Queue<Character> que = new LinkedList<>();
for (char c : sequence.toCharArray()) que.add(c);
for (char c : str.toCharArray()) if(!que.isEmpty() && que.peek() == c) que.poll();
if(!que.isEmpty()) return "NO";
return "YES";
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(solution(br.readLine(), br.readLine()));
}
}
설명
- 먼저 sequence의 모든 문자를 큐에 순서대로 넣는다.
- 그 후 str 문자열의 각 문자를 하나씩 확인하면서 큐의 맨 앞 문자와 같은지 비교한다. 만약 같다면 큐에서 그 문자를 제거한다.
- str 문자열을 모두 확인한 후에도 큐에 문자가 남아 있으면 "NO"를 반환하고, 큐가 비어 있으면 "YES"를 반환한다. 이는 sequence의 모든 문자가 str에 순서대로 존재하면 "YES", 그렇지 않으면 "NO"를 반환하는 것이다.
'자료구조 & 알고리즘 > Inflearn' 카테고리의 다른 글
[인프런 알고리즘] Chpater 6, 1번 문제(선택 정렬) (0) | 2024.08.15 |
---|---|
[인프런 알고리즘] Chpater 5, 8번 문제(응급실) (0) | 2024.08.14 |
[인프런 알고리즘] Chpater5, 6번 문제(공주 구하기) (0) | 2024.08.12 |
[인프런 알고리즘] Chapter 5, 5번 문제(쇠막대기) (0) | 2024.08.11 |
[인프런 알고리즘] Chapter 5, 4번 문제(후위식 연산) (0) | 2024.08.10 |