ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ๐ป ์ฝ๋ฉํ
์คํธ/ํ๋ก๊ทธ๋๋จธ์ค
ํ๋ก๊ทธ๋๋จธ์ค: ํ๊ฒ ๋๋ฒ
dirmathfl 2020. 8. 31. 19:46728x90
๋ฐ์ํ
๋ฌธ์
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํ๊ฒ ๋๋ฒ
n๊ฐ์ ์์ด ์๋ ์ ์๊ฐ ์์ต๋๋ค. ์ด ์๋ฅผ ์ ์ ํ ๋ํ๊ฑฐ๋ ๋นผ์ ํ๊ฒ ๋๋ฒ๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด [1, 1, 1, 1, 1]๋ก ์ซ์ 3์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋ค์ฏ ๋ฐฉ๋ฒ์ ์ธ ์ ์์ต๋๋ค. -1+1+1+1+1 = 3 +1-1+1+1+
programmers.co.kr
๋ฌธ์ ํ์ด
ํ์ฌ ๊ฐ์ ๋ํ๋๋, ๋นผ๋์ ๋ฐ๋ผ 2 ๊ฐ์ง๋ก ๋๋๊ฒ ๋๋ค. ์ด๋ DFS๋ฅผ ํตํด ํ์ํ ๊ฒฝ์ฐ ๊ฐ ๊ฒฝ์ฐ์ ๋ํด ํ๋จํ ์ ์๋ค. ๊ฐ ๋ ธ๋ ๋ง๋ค 2๊ฐ์ ๊ฐ์ง๋ก ๋ปฃ์ด๋๊ฐ๊ฒ ๋๋ฏ๋ก, ํธ๋ฆฌ์ ์ต๋ depth(์ซ์์ ์) ๋งํผ ๋๋ฌ ํ์์ ๋, ๊ณ์ฐ ๋ ๊ฐ๊ณผ target๊ณผ ์ผ์นํ๋์ง ํ์ธํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ฝ๋
def dfs(numbers, target, i = 0):
answer = 0
if i == len(numbers):
if sum(numbers) == target:
return 1
return 0
answer += dfs(numbers, target, i + 1)
numbers[i] *= -1
answer += dfs(numbers, target, i + 1)
return answer
def solution(numbers, target):
return dfs(numbers, target)
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค: ๋ ๋ฐ๋จน๊ธฐ (0) | 2020.09.01 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค: ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2020.09.01 |
ํ๋ก๊ทธ๋๋จธ์ค: ๋คํธ์ํฌ (0) | 2020.08.31 |
ํ๋ก๊ทธ๋๋จธ์ค: ๋จ์ด ๋ณํ (0) | 2020.08.31 |
ํ๋ก๊ทธ๋๋จธ์ค: ์ฌํ ๊ฒฝ๋ก (0) | 2020.08.31 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ