๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
2๏ธโƒฃ Java/Problem Solving

[BOJ] A์™€ B #12904

by seolhee2750 2023. 3. 5.
๋ฌธ์ œ

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()์œผ๋กœ ๋ฐ”๊ฟ”์„œ ํ•ด์•ผ ํ•จ

 


๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ
  • ๊ตณ์ด ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋ฐ˜๋ณต๋ฌธ ํ•˜๋‚˜๋กœ๋„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™์Œ
  • ํšจ์œจ์ ์œผ๋กœ ํ’€์ž ~

๋Œ“๊ธ€