Development/CodingTest
[ํ๋ก๊ทธ๋๋จธ์ค] Python ํ๊ฒ๋๋ฒ
Kirok Kim
2022. 1. 1. 22:33
์ ์ฒด ์ฝ๋
def solution(numbers, target):
def dfs(result,n):
if n==len(numbers):
if result==target:
return 1
return 0
return dfs(result+numbers[n],n+1)+dfs(result-numbers[n],n+1)
return dfs(0,0)
์ฝ๋ ๋ฆฌ๋ทฐ
def dfs(result,n):
# ํ๊ฒ๋๋ฒ๋ฅผ dfs๋ก ํธ๋ ์ด์ ๋ numbers๋ฅผ ๊ฐ์ง๊ณ +, - ์ฐ์ฐ๋ง์ผ๋ก target์ ๋๋ฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ dfs๋ก ํด๊ฒฐ
if n==len(numbers):
# numbers ์์๋ฅผ ๋ค ์ฐ์ฐํ๊ณ
if result==target:
# n[0]๊ฐ -์ผ ๋์ +์ผ ๋๋ก ๋๋๊ณ ๋ค์ ์ธ๋ฑ์ค์ ๊ฐ ๋ํ +,-๋ก ๋๋์ด ์ฐ์ฐํ result๊ฐ
# target์ด ๋์์ ๋
return 1
# 1์ ๋ฐํํ๋ค.
return 0
# ๋ง์ฝ result๊ฐ target์ด ์๋๋ฉด 0์ ๋ฐํ
return dfs(result+numbers[n],n+1)+dfs(result-numbers[n],n+1)
# ๋ฐํํ ๊ฐ๋ค ์ ๋ถ ๋ํด ๋ฐํ!
return dfs(0,0)
๋ฐ์ํ