Java 코딩테스트 공부/Java 알고리즘 공부
Java 스택, 큐 알고리즘5 + deque
daramG
2022. 8. 20. 21:13
문제 :
첫 줄에 입력된 영어 대문자가 두 번째 줄에 입력된 영어 대문자 순서대로 포함되어 있으면 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();