문제 :
https://www.acmicpc.net/problem/12904
접근 :
- 2번째 입력받은 문자열을 deq에 넣는다.
- reverse 가 false 인 경우 마지막 문자를 뽑아 A 이면 다음으로 진행, B 이면 reverse를 ture 로 반전
- reverse 가 true 인 경우 첫번째 문자를 뽑아 A 이면 다음으로 진행, B 이면 reverse를 false 로 반전
- 1번째 입력 받은 문자열과 deq의 길이가 같아질때 까지 반복실행
- 만약 길이가 같아지면 reverse 가 true 이면 반전하여 동일한지 비교, 만약 false 이면 그대로 같은지 비교한다.
코드 구현 :
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String target = br.readLine();
String input = br.readLine();
Deque<Character> deq = new LinkedList<>();
for(int i = 0 ; i < input.length() ; i++) deq.offer(input.charAt(i));
boolean is_reverse = false;
char next;
while(deq.size() != target.length()) {
next = is_reverse ? deq.pollFirst() : deq.pollLast();
if(next == 'B') is_reverse = !is_reverse;
}
StringBuilder sb = new StringBuilder();
if(is_reverse){
while(deq.size() > 0) sb.append(deq.pollLast());
}else{
while(deq.size() > 0) sb.append(deq.pollFirst());
}
System.out.print(sb.toString().equals(target) ? 1 : 0);
br.close();
}
}
'JAVA > Coding Test' 카테고리의 다른 글
[JAVA] 백준 2263 트리의순회_탐색 (0) | 2024.07.03 |
---|---|
[JAVA] 백준 17609 회문_탐색 (0) | 2024.07.03 |
[JAVA] 백준 1967 트리의지름_트리 (0) | 2024.07.02 |
[JAVA] 백준 4803 트리_트리 (0) | 2024.07.01 |
[JAVA] 백준 1068 트리_트리 (0) | 2024.06.28 |