코딩테스트/BOJ

[BOJ] 12904 A와 B - JAVA

5월._. 2023. 2. 20.
728x90

1. 문제

 

12904번: A와 B

수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수

www.acmicpc.net

수빈이는 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

댓글