
-Code
import java.io.*;
public class BOJ12904 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
String t = br.readLine();
// 만들수 있는지 체크
boolean isMade = false;
StringBuilder now = new StringBuilder(t);
// now가 비어있지 않으면 반복
while (now.length() > 0) {
// 같으면 만들수 있음 체크하고 탈출
if (now.toString().equals(s)) {
isMade = true;
break;
}
// 마지막 단어 체크릴 위한 셋팅
int last = now.length() - 1;
boolean isReverse = now.charAt(last) == 'B';
// 마지막 값을 제거
now.delete(last, last + 1);
// 만약 마지막 값이 B였으면 뒤집기
if (isReverse) {
now.reverse();
}
}
// 출력
System.out.println(isMade ? 1 : 0);
}
}
처음에는 BFS로 2가지 방향을 정방향으로 탐색하면서 값을 구했으나 메모리 초과로 틀렸습니다. 그래서 힌트를 찾아보니 역방향으로 마지막이 A이면 제거 B면 제거하고 뒤집기를 통해 진행하면 맞는 것을 알고 StringBuilder로 셋팅해서 해결했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 9019번 DSLR (0) | 2026.02.05 |
|---|---|
| [백준/Java] 34845번 강의평 (0) | 2026.02.05 |
| [백준/Java] 16987번 계란으로 계란치기 (0) | 2026.02.04 |
| [백준/Java] 35247번 Itsy Bits (0) | 2026.02.04 |
| [백준/Java] 1359번 복권 (0) | 2026.02.03 |