[Programmers] νκ²λλ²
Updated:
νκ²λλ²
νκ²λλ² λ₯Ό ν΄λ¦νλ©΄ λ°λ‘ μ΄λνλ€.
DFS / BFS μΉ΄ν κ³ λ¦¬μ μμ΄μ λλΆμ κ°λ λ λ€μ 곡λΆνκ³ νμ΄μ¬μΌλ‘ μ½λ© νλ λ°©λ²λ μ΅νλ€.
answer = 0
def DFS(nums, target, idx, sum):
global answer
if idx == len(nums):
if sum == target:
answer += 1
return
DFS(nums, target, idx + 1, sum + nums[idx])
DFS(nums, target, idx + 1, sum - nums[idx])
def solution(nums, target):
DFS(nums, target, 0, 0)
return answer
λͺ¨λ κ²½μ°μ μλ₯Ό λ€ κ΅¬ν΄ κ°μ λΉκ΅ ν΄ μ£Όλ©΄ λλ€. μ΄λ μ¬κ·λ₯Ό μ΄μ©νλ©΄ κ°λ¨νκ² κ΅¬ν ν μ μλ€.
λ¬Έμ λ₯Ό νκ³ λ€λ₯Έ μ¬λ μ½λλ₯Ό 보λλ° μ§μ§ λλ¨ν μ½λκ° μμ΄μ μκ°ν΄λ³Έλ€.
from itertools import product
def solution(numbers, target):
_list = [(x, -x) for x in numbers]
result = list(map(sum, product(*_list)))
return result.count(target)
μ΄ μ½λλ₯Ό λ³΄κ³ μ§μ§ μ§μ§ μμ² λλνκ³ λλ¨νλ€κ³ λκΌλ€..
product λ λ κ° μ΄μμ 리μ€νΈμ λͺ¨λ μ‘°ν©μ λ°ννλ€.
μλ₯Όλ€μ΄ [(1, -1), (2, -2)] λΌλ 리μ€νΈλ₯Ό product νλ€λ©΄ [(1, 2), (1, -2), (-1, 2), (-1, -2)] μ΄λ κ² λ°νλλ€.
μ λ ₯λ°μ μ«μλ₯Ό (+, -) λ‘ λ¬Άμ΄ λ¦¬μ€νΈλ₯Ό λ§λ€κ³ κ·Έ 리μ€νΈλ₯Ό κ°μ§κ³ λͺ¨λ μ‘°ν©μ λ§λ€μ΄ κ³μ°νλ€ target κ°μλ₯Ό μΌ κ²μ΄λ€..
Leave a comment