https://www.acmicpc.net/problem/12904
[풀이]
- 그리디 및 문자열 유형의 문제였습니다.
- T 문자열의 뒤에서부터 0번째 인덱스 방향으로 풀이를 진행했습니다.
- T 문자열의 길이가 하나씩 줄어들면서 S 문자열이 될때까지 진행하며
- B가 나오면 B를 삭제하고, 뒤집기를,
- A가 나오면 그냥 삭제를 합니다.
- deleteCharAt()메소드나 reverse()메소드를 사용해도 시간복잡도에 문제가 없기 때문에 StringBuffer 혹은 StringBuilder를 사용했습니다.
[코드]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder S = new StringBuilder(br.readLine());
StringBuilder T = new StringBuilder(br.readLine());
while (T.length() != S.length()) {
char chr = T.charAt(T.length() - 1);
T.deleteCharAt(T.length() - 1);
if (chr == 'B') {
T.reverse();
}
}
if (S.toString().equals(T.toString())) {
System.out.println(1);
} else {
System.out.println(0);
}
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 1780번 : 종이의 개수 (Java) (0) | 2021.10.04 |
---|---|
백준 2512번 : 예산 (Java) (0) | 2021.10.02 |
백준 14503번 : 로봇 청소기 (Java) (0) | 2021.09.30 |
백준 11000번 : 강의실 배정 (Java) (0) | 2021.09.29 |
백준 14500번 : 테트로미노(Java) (0) | 2021.09.28 |