본문 바로가기
백준/10001 - 15000

[백준] 12904번 : A와 B(JAVA)

by lms0806 2021. 8. 27.
728x90
반응형

https://www.acmicpc.net/problem/12904

 

12904번: A와 B

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

www.acmicpc.net

풀이

문자 2번을 1번이 되도록 하면서 풀면 됩니다.

1번문자에서 2번문자가 될려면 A나 B를 1개 무조건 추가하는 식이므로, 반대로 2번에서 1번이 될려면 A나 B를 빼줍니다.

대신 B를 뺄려면 문자를 뒤집어줘야한다.

 

1번문자와 2번문자의 길이가 같을 때, 문자가 서로 같으면 1, 아니면 0을 리턴하는 함수를 작성합니다.

 

소스코드

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

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		System.out.print(solve(br.readLine(), br.readLine()));
	}
	
	public static int solve(String a, String b) {
		while(true) {
			if(a.length() == b.length()) {
				if(a.equals(b)) {
					return 1;
				}
				return 0;
			}
			
			char c = b.charAt(b.length() - 1);
			
			b = b.substring(0, b.length() - 1);
			
			if(c == 'B') {
				b = new StringBuilder(b).reverse().toString();
			}
		}
	}
}
728x90
반응형

댓글