알고리즘 문제
백준 (BOJ) 12904 A와 B java 그리디
veryhi
2022. 6. 28. 19:52
https://www.acmicpc.net/problem/12904
12904번: A와 B
수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수
www.acmicpc.net
꿀 문제
추가가 아닌 제거로 역접근하고,
각 단계마다 문자열을 하나씩 제거한다고 생각하면 쉽다. B의 경우에는 추가로 뒤집기하면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static String origin, target;
static int index;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
origin = br.readLine();
target = br.readLine();
index = target.length()-1;
subtract();
}
//* 거꾸로 연산: 뒤에 A 빼기, 뒤에 B 빼고 뒤집기
static void subtract(){
while (target.length() != origin.length()){
if(target.charAt(index) == 'A'){
target = target.substring(0, index);
}
else{ // B다?
target = target.substring(0, index);
target = new StringBuilder(target).reverse().toString();
}
--index;
}
if(target.equals(origin)){
System.out.print(1);
}
else{
System.out.print(0);
}
}
}