๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค - ํ๊ฒ ๋๋ฒ
ํ์ด ๊ณผ์
์ฃผ์ด์ง ์์ ๋ง์
๊ณผ ๋บ์
์ ํ์ฉํด์ ๋ชฉํ ์ซ์๋ฅผ ๋ง๋๋ ๋ฌธ์ ์
๋๋ค.
์ต๋ 20๊ฐ์ ์ซ์๋ฅผ ์ฌ์ฉํ๊ณ 2๊ฐ์ง ์ฐ์ฐ๋ฐ์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ต๋ 2^20
๊ฐ์ ์ํ๋ฅผ ๋ฐฉ๋ฌธํ๊ฒ ๋ฉ๋๋ค.
์ด๋ ๋๋ต 1000000
์ผ๋ก ์ถฉ๋ถํ ์๊ฐ ๋ด์ ์ํ์ด ๊ฐ๋ฅํ๋ฏ๋ก DFS
๋ฅผ ํ์ฉํด ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์์ฑํ์ฌ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ ์๋ฅผ ์ธ์ด์คฌ์ต๋๋ค.
์ฝ๋
def dfs(numbers, depth, here, target):
if depth == len(numbers):
return 1 if here == target else 0
ret = 0
for operand in [-numbers[depth], numbers[depth]]:
ret += dfs(numbers, depth+1, here + operand, target)
return ret
def solution(numbers, target):
start = 0
ans = dfs(numbers, 0, start, target)
return ans
๋ฐ์ํ
'๐ algorithm > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค Level 3 - ๋จ์ด ๋ณํ (0) | 2021.03.01 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค Level 3 - ๋คํธ์ํฌ (0) | 2021.03.01 |
ํ๋ก๊ทธ๋๋จธ์ค Level 3 - ์ต๊ณ ์ ์งํฉ (0) | 2021.03.01 |
ํ๋ก๊ทธ๋๋จธ์ค Level 2 - ํฐ ์ ๋ง๋ค๊ธฐ (0) | 2021.03.01 |
ํ๋ก๊ทธ๋๋จธ์ค Level 3 - ์ฌ ์ฐ๊ฒฐํ๊ธฐ (0) | 2021.03.01 |
๐ฌ ๋๊ธ