DevYoon
[๋ฐฑ์ค] 7490. 0 ๋ง๋ค๊ธฐ (Python) ๋ณธ๋ฌธ
link ๐ https://www.acmicpc.net/problem/7490
๐ DFS๋ก +, -, ๊ณต๋ฐฑ์ ๊ฒฝ์ฐ๋ฅผ ํ๊ณ ๋ค์ด๊ฐ์ฃผ์๋ค.
๐ DFS ๋ด๋ถ์์ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง๊ณ ๋ค๋ ๋ณด์๋๋ฐ, ์๊ฐ์ฒ๋ผ ๊ณ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ ๋์ค์ง ์์๋ค.
๐ ๋ฐ๋ผ์ ๋ง์ง๋ง ์ซ์๋ฅผ ๋ชจ๋ ์ฌ์ฉํ์ ๋, ๋ง๋ค์ด์ง ๋ฌธ์์ด์ eval ๋ฉ์๋๋ฅผ ํตํด ๊ณ์ฐํ๊ณ , ๊ฐ์ด 0์ด๋ฉด res ๋ฆฌ์คํธ์ ์ถ๊ฐํด์ฃผ๋ ์์ผ๋ก ํด๊ฒฐํ์๋ค.
๐ ๋ฌธ์์ด ๋ด๋ถ์์ ๊ณต๋ฐฑ์ ์ฌ์ฉํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด replace ๋ฉ์๋๋ก ๊ณต๋ฐฑ์ ์์ ์ค ํ eval ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์๋ค.
def DFS(nowNum, sentence):
if nowNum == N+1:
test = eval(sentence.replace(" ", ""))
if test == 0:
res.append(sentence)
else:
DFS(nowNum+1, sentence+'+'+str(nowNum))
DFS(nowNum + 1, sentence + '-'+str(nowNum))
DFS(nowNum + 1, sentence + ' '+str(nowNum))
T = int(input())
for _ in range(T):
N = int(input())
res = []
DFS(2, "1")
res.sort()
for s in res:
print(str(s))
print()