본문 바로가기
백준/그리디

[백준 23904번 / Java] A와 B

by ghan2 2024. 5. 14.

# 시간 복잡도를 계산하여 미리 예측해보자

# 더 쉬운 방법을 생각해보자

# StringBuilder를 활용하자

 

처음에 모든 경우를 계산해보는 완전탐색 알고리즘을 이용해서 계산하려고 했다. 

코드로 구현하기가 머리아파서 혼자 괴로워하고 있었다... 🤯

 

그러나 뒤에서부터 계산하면 아주 간단해진다는걸 알게됐다.

경우의 수가 2개 뿐이니 역추적을 해보는 것이다ㅠㅠ 이렇게 간단할수가,,

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    static String S;
    static StringBuilder T;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        S = br.readLine();
        T = new StringBuilder(br.readLine());
        int n = T.length();

        for(int i = n-1; i > S.length() - 1; i--) {
            if(T.charAt(i) == 'A') {
                T.deleteCharAt(i);
            } else {
                T.deleteCharAt(i);
                T.reverse();
            }
        }

        if(T.toString().equals(S)) {
            System.out.println(1);
        } else {
            System.out.println(0);
        }

    }
}