ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์์ ๋ค๋ฃฌ 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
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 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 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ