์ƒˆ์†Œ์‹

Algorithm/BOJ

(JAVA) [BOJ]๋ฐฑ์ค€ 12919๋ฒˆ, A ์™€ B 2

  • -
728x90

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());
            }
            
        }
    }
}
728x90
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.