728x90
1. 문제
수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다.
이런 사실에 놀란 수빈이는 간단한 게임을 만들기로 했다. 두 문자열 S와 T가 주어졌을 때, S를 T로 바꾸는 게임이다. 문자열을 바꿀 때는 다음과 같은 두 가지 연산만 가능하다.
- 문자열의 뒤에 A를 추가한다.
- 문자열을 뒤집고 뒤에 B를 추가한다.
주어진 조건을 이용해서 S를 T로 만들 수 있는지 없는지 알아내는 프로그램을 작성하시오.
2. 풀이
T에서 S로 가는 식으로 생각했다. 맨 뒤가 A면 지우기, B면 지우고 반대로 뒤집으면 된다.
import java.io.*;
public class BOJ_12904_A와B {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringBuilder S = new StringBuilder().append(in.readLine());
StringBuilder T = new StringBuilder().append(in.readLine());
char now;
while(S.length() != T.length()){
now = T.charAt(T.length()-1);
T.setLength(T.length()-1);
if(now=='B') T.reverse();
}
if(S.toString().equals(T.toString())) System.out.println(1);
else System.out.println(0);
}
}
3. 결과
'코딩테스트 > BOJ' 카테고리의 다른 글
[BOJ] 1713 후보 추천하기 - JAVA (0) | 2023.02.23 |
---|---|
[BOJ] 1916 최소비용 구하기 - JAVA (0) | 2023.02.21 |
[BOJ] 1562 계단수 - JAVA (0) | 2023.02.19 |
[BOJ] 1700 멀티탭 스케줄링 - JAVA (0) | 2023.02.18 |
[BOJ] 5904 Moo게임 - JAVA (0) | 2023.02.17 |
댓글