DevYoon
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๊ฒ ๋๋ฒ (Python) ๋ณธ๋ฌธ
link ๐ https://programmers.co.kr/learn/courses/30/lessons/43165
1๏ธโฃ DFS๋ฅผ ํ์ฉ
2๏ธโฃ ๋ํ๊ฑฐ๋ ๋นผ์ target์ ๋ง๋๋ ๋ฌธ์ ์ด๋ฏ๋ก, sums ๋ณ์์ numbers[level]์ ๋ํด์ค ๋์ ๋นผ์ค ๋๋ก ๋๋์ด ๋๋ ค์ฃผ์๋ค.
โ๏ธ ํ์ด
def solution(numbers, target):
answer = 0
def dfs(level, sums):
nonlocal answer
if level == len(numbers):
if sums == target:
answer += 1
return
dfs(level+1, sums+numbers[level])
dfs(level+1, sums-numbers[level])
dfs(0, 0)
return answer
โ๏ธ ๋ฉ๋ชจ
- ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ํ์ด ๋ฐฉ์์ด ์์ง๋ ๋ฏ์ค๋ค ํํ๐ฅฒ ๋ฌธ์ ์ด์ฌํ ํ์ด์ ์ผ๋ฅธ ์ต์ํด์ ธ์ผ์ง
- global answer๋ก ์ฒ์์ ํ์๋๋ ์ค๋ฅ๊ฐ ๋ด๊ณ , nonlocal๋ก ๋ฐ๊ฟ์ฃผ์๋ค. ๋งค๋ฒ global๋ง ์ฐ๋ค๊ฐ nonlocal ์ฐ๋ ์๋กญ๋ค...โจ nonlocal ๋ฐฐ์ฐ๊ณ ์๊น๋งฃ๊ฒ ์์ด๋ฒ๋ฆฌ๊ณ ์์๋ค๐