2๏ธโฃ Java/Problem Solving
[BOJ] A์ B #12904
seolhee2750
2023. 3. 5. 14:05
๋ฌธ์
https://www.acmicpc.net/problem/12904
12904๋ฒ: A์ B
์๋น์ด๋ A์ B๋ก๋ง ์ด๋ฃจ์ด์ง ์์ด ๋จ์ด๊ฐ ์กด์ฌํ๋ค๋ ์ฌ์ค์ ๋๋๋ค. ๋ํ์ ์ธ ์๋ก AB (Abdominal์ ์ฝ์), BAA (์์ ์ธ์ ์๋ฆฌ), AA (์ฉ์์ ์ข ๋ฅ), ABBA (์ค์จ๋ด ํ ๊ทธ๋ฃน)์ด ์๋ค. ์ด๋ฐ ์ฌ์ค์ ๋๋ ์
www.acmicpc.net
๋ด ๋ฌธ์ ํ์ด
import java.io.*;
public class Main {
static StringBuilder s, t;
static int sLen;
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
s = new StringBuilder(in.readLine());
t = new StringBuilder(in.readLine());
sLen = s.length();
game();
}
public static void game() {
if(t.length() == sLen) {
if(t.toString().equals(s.toString())) {
System.out.println(1);
} else {
System.out.println(0);
}
return;
}
if(t.charAt(t.length()-1) == 'A') {
t.deleteCharAt(t.length()-1);
} else {
t.deleteCharAt(t.length()-1);
t.reverse();
}
game();
}
}
๐ ๋ฌธ์์ด, ๊ทธ๋ฆฌ๋ ๋ฌธ์
ํ์ด ์ค๋ช
- ์ฃผ์ด์ง ๋ฌธ์์ด t๊ฐ ์ด๋ค ๋ฌธ์๋ก ๋๋๋์ง์ ๋ฐ๋ผ ์ฐ์ฐ์ด ์ ํด์ง
- A๋ก ๋๋๋ฉด ๋งจ ๋ค ๋ฌธ์๋ฅผ ์ญ์
- B๋ก ๋๋๋ฉด ๋งจ ๋ค ๋ฌธ์๋ฅผ ์ญ์ ํ๊ณ , ํ ๋ฒ ๋ค์ง์ด์ค
- ๋ฐ๋ผ์ s๋ฅผ t๋ก ๋ฐ๊พธ๋ ๊ณผ์ ๋ณด๋ค t๋ฅผ s๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์ด ํจ์ฌ ํจ์จ์
- s๋ฅผ t๋ก ๋ฐ๊ฟ ๊ฒฝ์ฐ, ๋ค์ A๋ฅผ ๋ถ์ด๋ ์ฐ์ฐ๊ณผ ํ ๋ฒ ๋ค์ง๊ณ ๋ค์ B๋ฅผ ๋ถ์ด๋ ์ฐ์ฐ ๋ชจ๋๋ฅผ ์ํํด์ผ ํจ
- t๋ฅผ s๋ก ๋ฐ๊ฟ ๊ฒฝ์ฐ, ๋งจ ๋ค ๋ฌธ์๊ฐ A์ธ์ง B์ธ์ง๋ฅผ ํ์ธ ํ ๋ ์ค ํ๋์ ์ฐ์ฐ๋ง ์ํํ๋ฉด ๋จ
์ง๊ณ ๋์ด๊ฐ๊ธฐ
- ๋ฌธ์์ด์ ๋ค์ง๊ฑฐ๋ ํ๋ ์ญ์ ํ ๋๋ StringBuilder๋ StringBuffer๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ์๋๋ก ๊ฐํธํ๊ฒ ํ ์ ์์
- .deleteCharAt(์ธ๋ฑ์ค)
- .reverse()
- ๋ฌธ์์ด์ ์๋ก์ด ๋ฌธ์๋ฅผ ์ถ๊ฐ, ์ญ์ ํ ๋๋ String๋ณด๋ค StringBuilder๋ StringBuffer๊ฐ ์ฑ๋ฅ ์ฐ์
- StringBuilder, StringBuffer๋ equals๋ก ๋ฌธ์์ด ๋น๊ต ์ํ ์ toString()์ผ๋ก ๋ฐ๊ฟ์ ํด์ผ ํจ
๐ก ํผ๋๋ฐฑ
- ๊ตณ์ด ์ฌ๊ท ํจ์๋ฅผ ๋ง๋ค์ง ์๊ณ ๋ฐ๋ณต๋ฌธ ํ๋๋ก๋ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ๊ฒ ๊ฐ์
- ํจ์จ์ ์ผ๋ก ํ์ ~