본문 바로가기
알고리즘/그리디 알고리즘

백준 12904번 : A와 B java

by LDY3838 2022. 8. 11.
반응형

이 문제는 조건에 맞게 문자열을 변형시켰을 때 S를 이용하여 T를 만들 수 있는지 확인하는 문제입니다.

이 문제를 풀기 위해서 저는 T를 변형시켜 S가 될 수 있는지 확인했습니다.

T의 마지막 문자가 A일 경우 문자를 제거하였고 마지막 문자가 B일 경우 이 문자를 제거한 후 문자열을 뒤집었습니다.

이 과정을 T와 S의 길이가 같아질 때까지 반복한 후 두 문자열이 같은지 확인하면 이 문제를 해결할 수 있습니다.


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[] inputA = br.readLine().split("");
        String[] inputB = br.readLine().split("");

        List<String> A  = new ArrayList<>();
        List<String> B = new ArrayList<>();

        Collections.addAll(A, inputA);
        Collections.addAll(B, inputB);

        while(A.size() != B.size()){
            String last = B.get(B.size()-1);

            if(last.equals("A"))
                B.remove(B.size()-1);
            else{
                B.remove(B.size()-1);
                Collections.reverse(B);
            }
        }

        boolean flag = true;

        for(int i = 0; i<A.size(); i++){
            if(!A.get(i).equals(B.get(i))){
                flag = false;
                break;
            }
        }

        if(flag)
            System.out.println(1);
        else
            System.out.println(0);
    }
}
반응형

'알고리즘 > 그리디 알고리즘' 카테고리의 다른 글

백준 1461번 : 도서관 java  (0) 2022.08.15
백준 1080번 : 행렬 java  (0) 2022.08.14
백준 1092번 : 배 java  (0) 2022.08.10
백준 2212번 : 센서 java  (0) 2022.08.09
백준 2437번 : 저울 java  (0) 2022.08.08

댓글