import java.io.*;
import java.util.*;
public class A_B_12904 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
String t = br.readLine();
List<Character> Schars = new ArrayList<>();
List<Character> Tchars = new ArrayList<>();
for (int i = 0; i < s.length(); i++){
Schars.add(s.toCharArray()[i]);
}
for (int i = 0; i < t.length(); i++){
Tchars.add(t.toCharArray()[i]);
}
while (Schars.size() != Tchars.size()) {
if (Tchars.get(Tchars.size()-1) == 'A') {
Tchars.remove(Tchars.size()-1);
} else {
Tchars.remove(Tchars.size()-1);
Collections.reverse(Tchars);
}
}
StringBuilder sbS = new StringBuilder();
StringBuilder sbT = new StringBuilder();
for (Character chs : Schars) {
sbS.append(chs);
}
for (Character cht : Tchars) {
sbT.append(cht);
}
String ans = sbS.toString();
String res = sbT.toString();
if (ans.equals(res)) {
System.out.println(1);
} else {
System.out.println(0);
}
}
}
이 Java 코드는 문자열을 변환하는 문제를 해결합니다. 여기서는 두 가지 연산을 이용해서 문자열 S를 T로 바꾸려고 합니다.
문자열의 끝에 'A'를 추가한다.
문자열을 뒤집고 끝에 'B'를 추가한다.
주요 구성 요소는 다음과 같습니다:
Schars, Tchars: 입력받은 두 문자열 S와 T를 문자 단위로 분해하여 저장하는 리스트입니다. 문자열 S와 T는 공백 없이 대문자로만 이루어져 있습니다.
main: 사용자로부터 두 문자열 S와 T를 입력받고, 각 문자를 Schars와 Tchars 리스트에 저장합니다. 이후 문자열 S의 크기와 T의 크기가 같아질 때까지 아래 작업을 반복합니다:
T의 마지막 문자가 'A'라면, T의 마지막 문자를 제거합니다.
T의 마지막 문자가 'B'라면, T의 마지막 문자를 제거하고 T를 뒤집습니다.
그 후 StringBuilder를 이용하여 Schars와 Tchars를 다시 문자열로 변환하고 두 문자열이 같은지 비교합니다.
문자열 S를 T로 바꿀 수 있다면 '1'을 출력하고, 그렇지 않다면 '0'을 출력합니다.
이 코드를 간략하게 요약하면, 주어진 두 문자열 S와 T에 대해 S를 T로 변환할 수 있는지를 판단하는 문제를 해결하는 것입니다. 문자열의 끝에 'A'를 추가하거나, 문자열을 뒤집고 끝에 'B'를 추가하는 두 가지 연산을 이용하여 S를 T로 변환할 수 있는지를 체크하며, 이 때 문자열 T에서 연산을 역으로 수행하는 방식으로 문제를 해결합니다.
import sys
input = sys.stdin.readline
s = list(input().strip())
t = list(input().strip())
while len(s) != len(t):
if t[-1] == 'A':
t.pop()
else:
t.pop()
t.reverse()
if s == t:
print(1)
else:
print(0)
많은 도움이 되었습니다, 감사합니다.