ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
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)
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 10815 ์ซ์ ์นด๋ (0) | 2020.09.12 |
---|---|
๋ฐฑ์ค: 2857 ๋ํ or ์ธํด (0) | 2020.09.11 |
๋ฐฑ์ค: 12904 A์ B (0) | 2020.09.10 |
๋ฐฑ์ค: 1744 ์ ๋ฌถ๊ธฐ (0) | 2020.09.10 |
๋ฐฑ์ค: 1541 ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2020.09.08 |