반응형
문제 출처: https://www.acmicpc.net/problem/12904
1. 문제 접근방식
- 문제에 주어진대로 S를 받아 처음부터 진행하는 방식이 아닌 T의 문자를 제거하는 방식대로 생각해보았다. T의 마지막 문자가 A일 경우 A를 제거하고 B일 경우 B를 제거하고 역순으로 뒤집는 방식이다. 이렇게 하여 S와 길이를 같게 하고 S와 T가 같아지는지 판단하는 것이다.
2. 내가 푼 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class boj12904 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer S = new StringBuffer(br.readLine());
StringBuffer T = new StringBuffer(br.readLine());
while (S.length() < T.length()) {
if (T.charAt(T.length() - 1) == 'A') {
T.deleteCharAt(T.length() - 1);
} else if (T.charAt(T.length() - 1) == 'B') {
T.deleteCharAt(T.length() - 1);
T.reverse();
}
}
System.out.println((S.toString().equals(T.toString())) ? 1 : 0);
}
}
3. 결과 및 느낀점
- 역순으로 생각해보면 금방 구현할 수 있는 문제였다.
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 17219 JAVA (0) | 2021.08.06 |
---|---|
[Baekjoon/백준] 2671 JAVA (0) | 2021.08.05 |
[Baekjoon/백준] 1013 JAVA (0) | 2021.08.03 |
[Baekjoon/백준] 1120 JAVA (0) | 2021.08.02 |
[Baekjoon/백준] 11659 JAVA (0) | 2021.08.01 |