https://www.acmicpc.net/problem/12919
12919, A ์ B 2
๐ [ ๋์ด๋ : ๊ณจ๋ 5 ]
์ด๋ฒ ๋ฌธ์ ๋ ๋ฌธ์์ด ๋ฌธ์ ์ด๋ค
๊ณจ๋ ๋ฌธ์ ์์ฃผ๋ก ํ์ดํด์ ๊ณ ๋์ ์ ๋
ธ๋ ค๋ณด์๊ณ ๋ง์๋จน๊ณ ํผ ๋ฌธ์ ์ด๊ธฐ๋ ํ์ง๋ง ์ ํผ ํ์ด์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
๋ ํจ์จ์ ์ธ ํ์ด๋ฅผ ์ํด ์ฐ๊ตฌํด๋ด์ผ ํ ๊ฒ ๊ฐ๋ค.
๐ Process
์ด๊ธฐํ ๋ฐ ์ ์ธ
: ๋ณํํ๊ธฐ์ before, ๋ณํํ ํ์ธ after ๋ก String ์ ๋ฐ์์ค๋ค.
public static void input() throws IOException {
before = br.readLine();
after = br.readLine();
}
์ฌ๊ทํธ์ถ
: ์ฌ๊ท๋ก ๋ฌธ์ ๋ฅผ ํ์ดํด๋ณด์๋ค. ์ ๊ทผ์ ๊ฐ๊ณต์ด ๋ ๋ฌธ์์ด์์ 2๊ฐ์ง ์กฐ๊ฑด์ ๋ฐ๋๋ก ํ๋ฉฐ before์ ๊ฐ์์ง๋์ง ๋น๊ตํ๋ ๊ณผ์ ์ด๋ค.
1. ๋ฌธ์์ด์ ๋ค์ A๋ฅผ ์ถ๊ฐํ๋ค.
: ๋ง์ง๋ง ๋ฌธ์๊ฐ A๋ผ๋ฉด ์๋ผ๋ด๊ณ ์ฌ๊ทํธ์ถ์ ์งํ.
2. ๋ฌธ์์ด์ ๋ค์ B๋ฅผ ์ถ๊ฐํ๊ณ ๋ฌธ์์ด์ ๋ค์ง๋๋ค.
: reverse() ํ๊ณ ๋ง์ง๋ง ๋ฌธ์๊ฐ B๋ผ๋ฉด ์๋ผ๋ด๊ณ ์ฌ๊ทํธ์ถ์ ์งํ
โ
์ ์ฒด ์ฝ๋
: ์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ๊ทํธ์ถ์ ์งํํ๊ณ after ์ ๋ฌธ์์ด ๊ธธ์ด๊ฐ before ๋ฌธ์์ด์ ๊ธธ์ด์ ๊ฐ์์ง๋ฉด ๋น๊ต ํ, flag ๋ฅผ ๋์ง๋ค. ๋ชจ๋ ์ฌ๊ทํธ์ถ์ด ๋๋๋ฉด ๊ทธ flag๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ต์ ๋์ถํ๋ ๋ก์ง์ผ๋ก ๊ตฌํํ์๋ค.
import java.io.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static String before, after;
static boolean isCorrect = false;
public static void main(String[] args) throws IOException
{
input();
pro(after);
if(isCorrect)
System.out.println(1);
else
System.out.println(0);
}
public static void input() throws IOException {
before = br.readLine();
after = br.readLine();
}
public static void pro(String s) {
StringBuilder sb;
if(s.length() == before.length()) {
if(s.equals(before)) {
isCorrect = true;
return;
}
}
else {
sb = new StringBuilder(s);
if(sb.charAt(s.length()-1) == 'A') {
pro(sb.substring(0, s.length()-1).toString());
}
sb = sb.reverse();
if(sb.charAt(s.length()-1) == 'B') {
pro(sb.substring(0, s.length()-1).toString());
}
}
}
}