ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

12919๋ฒˆ: A์™€ B 2

์ˆ˜๋นˆ์ด๋Š” A์™€ B๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์˜์–ด ๋‹จ์–ด ์กด์žฌํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋†€๋ž๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ AB (Abdominal์˜ ์•ฝ์ž), BAA (์–‘์˜ ์šธ์Œ ์†Œ๋ฆฌ), AA (์šฉ์•”์˜ ์ข…๋ฅ˜), ABBA (์Šค์›จ๋ด ํŒ ๊ทธ๋ฃน)์ด ์žˆ๋‹ค. ์ด๋Ÿฐ ์‚ฌ์‹ค์— ๋†€๋ž€ ์ˆ˜๋นˆ

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ์•ž์„œ ๋‹ค๋ฃฌ A์™€ B์˜ ๊ฒฝ์šฐ ํ•ญ์ƒ ๋ฌธ์ž์—ด ๋’ค์— A๋‚˜ B๊ฐ€ ์ถ”๊ฐ€ ๋˜์–ด, ๋’ค์— ์–ด๋–ค ๋ฌธ์ž๊ฐ€ ์˜ค๋Š”์ง€์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•˜์•ผ T๋ฅผ S๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์กฐ๊ฑด์ด ์ฃผ์–ด์ง์œผ๋กœ์จ ๋งจ ์•ž์— B์ด๊ฑฐ๋‚˜, ๋งจ ๋’ค๊ฐ€ A์ธ๊ฐ€๋ฅผ ํŒ๋‹จํ•˜์—ฌ S๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ์ƒํƒœ์—์„œ 2๊ฐ€์ง€๋กœ ๊ฐ€์ง€๋ฅผ ๋ปฃ์–ด ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ A์™€ B๋ฅผ ํ‘ผ ๋กœ์ง์—์„œ, `DFS๋ฅผ ํ†ตํ•ด ๊ฐ€์ง€๋ฅผ ๋ปฃ์–ด๊ฐ€๋ฉฐ ๋ฐฑํŠธ๋ž™ํ‚น`์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฌธ์ œ์˜ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin


def dfs(string):
    if len(string) == len(s):
        if string == s:
            print(1)
            exit(0)
        return

    if string[0] == 'B':
        string = string[::-1]
        string.pop()
        dfs(string)
        # ๋ฐฑํŠธ๋ž™ํ‚น์„ ์œ„ํ•œ ์ดˆ๊ธฐํ™”.
        string.append('B')
        string = string[::-1]

    if string[-1] == 'A':
        string.pop()
        dfs(string)
        # ๋ฐฑํŠธ๋ž™ํ‚น์„ ์œ„ํ•œ ์ดˆ๊ธฐํ™”.
        string.append('A')


if __name__ == "__main__":
    s, t = [list(stdin.readline().strip()) for _ in range(2)]
    dfs(t)
    print(0)
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€