문제 :
첫 줄에 입력된 영어 대문자가 두 번째 줄에 입력된 영어 대문자 순서대로 포함되어 있으면 YES, 아니면 NO
입력예제
CBA
CBDAGE
출력예제
YES
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Queue;
class Main {
public String solution(String e, String n) {
String answer = "YES";
Queue<Character> Q = new LinkedList<>();
for(char x : e.toCharArray()) Q.offer(x);
for(char x : n.toCharArray()) {
if (Q.contains(x)) {
if (x != Q.poll()) return "NO";
}
}
if (Q.isEmpty() == false) return "NO";
return answer;
}
public static void main(String[] args) throws IOException {
Main T = new Main();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String e = br.readLine();
String n = br.readLine();
bw.write(T.solution(e, n));
bw.flush();
bw.close();
}
}
감기 몸살로 열나고 어지러워서 문제는 대충 작성..
그냥 평범한 Queue 문제이다.
한동안 쉬어야할 것 같다. 역류성 식도염도 너무 심해져서 2주간은 약먹고 커피도 못 마실듯..
+
Deque
: 데이터의 추출과 삭제를 앞, 뒤에서 할 수 있다.
선언
Deque<Integer> dq = new ArrayDeque<Integer>();
Deque 함수
// 삽입
dq.offer(1); // 1을 뒤로 삽입
dq.offerLast(1); // 1을 뒤로 삽입
dq.offerFirst(1); // 1을 앞으로 삽입
// 추출
dq.poll(1); // 1을 앞에서 꺼내기
dq.pollFirst(1);
dq.pollLast(1); // 1을 뒤에서 꺼내기
dq.peek(); // 맨 앞의 값을 조회
dq.get(); // peek()랑 같음
// 크기
dq.size();
dq.isEmpty();
'Java 코딩테스트 공부 > Java 알고리즘 공부' 카테고리의 다른 글
Java 정렬, 이분검색과 결정알고리즘 2 (0) | 2022.09.03 |
---|---|
Java 정렬, 이분검색과 결정알고리즘 1 (0) | 2022.09.02 |
Java 스택, 큐 알고리즘4 + 빠른 입출력 (0) | 2022.08.17 |
Java 스택, 큐 알고리즘3 (0) | 2022.08.16 |
Java 스택, 큐 알고리즘2 (0) | 2022.08.15 |