๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿฆ• ๊ณต๋ฃก์ด ๋˜์ž!

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Python ํƒ€๊ฒŸ๋„˜๋ฒ„ ๋ณธ๋ฌธ

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)
๋ฐ˜์‘ํ˜•
Comments