[Algorithm] ๐ฉ ์ํ์ฝ๋ (DFS)
๊ฐ์ง = 1~26 (A~Z)
๋
ธ๋ - ์
๋ ฅ ๋ฆฌ์คํธ์ ์ธ๋ฑ์ค
code.insert(n, -1)
์ด์ : elif i>=10 and code[L] == i//10 and code[L+1] == i%10:
๋ฌธ์ฅ์์ ๋ง์ฝ ๋ง์ง๋ง ์ธ๋ฑ์ค์ ๊ฐ์ด 1์ด๋ 2์ธ ๊ฒฝ์ฐ, code[L] == i//10
์ด ํต๊ณผ๋์ด code[L+1] == i%10
์ L+1 ๋ถ๋ถ์์ ์ธ๋ฑ์ค ๋ฒ์ ์๋ฌ๊ฐ ๋ ์ ์๊ธฐ ๋๋ฌธ์ -1 ์ฝ์
ํด๋๊ธฐ. (1์ด๋ 2๊ฐ ์๋๋ผ๋ฉด code[L] == i//10
์์๋ถํฐ ํต๊ณผ๊ฐ ๋์ง ์์. ์ํ๋ฒณ์ 26๊น์ง๋ง ์๊ธฐ ๋๋ฌธ. 10์ ์๋ฆฌ๊ฐ 2๊ฐ ์ต๋)
def DFS(L, P):
global cnt
if L == n:
cnt += 1
for j in range(P): # P๊ฐ ํ๋ ์ฆ๊ฐํด์ ์๊ธฐ ๋๋ฌธ์ 0~P๊น์ง ๋๊ฒ ๋จ
print(chr(res[j]+64), end='')
print()
else:
for i in range(1, 27): # 1~26
if code[L] == i:
res[P] = i
DFS(L+1, P+1)
elif i>=10 and code[L] == i//10 and code[L+1] == i%10: # i๊ฐ ๋์๋ฆฌ ์ซ์์ผ๋
res[P] = i
DFS(L+2, P+1)
code = list(map(int, input())) # ์
๋ ฅ ๋ฆฌ์คํธ๋ก ๋ฐ๊ธฐ
n = len(code)
code.insert(n, -1)
res = [0] * (n+3)
cnt = 0
DFS(0, 0)
print(cnt)
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ([Algorithm] ๐ฉ ์ํ์ฝ๋ (DFS)), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@rladuswl/Algorithm-์ํ์ฝ๋-DFS์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค