DFS/BFS
https://school.programmers.co.kr/learn/courses/30/lessons/43165
def solution(numbers, target):
global answer
answer = 0
def dfs1(idx, now) :
# 프로그래머스에서 재귀 구현할 때 sol 함수 안에 선언
global answer
# 누적 계산 될 것
if now == target and idx == len(numbers) :
#걍 target 이랑 똑같으면 멈추면 안되고
#numbers 끝까지 쓰여야 성립되는 것이고
#그제야 멈추기 가능해
answer+=1
if idx == len(numbers) :
return # 그리고 다 쓰면 멈춤 조건 걸어주기
plus_now = now + numbers[idx]
dfs1(idx+1, plus_now) # 플러스 해주는 가지
minus_now = now - numbers[idx]
dfs1(idx+1, minus_now ) # 마이너스 해주는 가지
dfs1(0, 0 )
return answer
from collections import deque
def solution(numbers, target):
global answer
answer = 0
zero = 0
numbers = deque(numbers)
print(target, "target ")
# dfs(numbers, 0, target, 0)
def dfs(numlist, now, target) :
global answer
if now == target :
print("hihi")
answer+=1
return
elif not numlist :
return
else :
curr = numlist.popleft()
dfs(numlist, now + curr, target ) //1)
dfs(numlist, now - curr, target ) // 2)
dfs(numbers, 0, target )
return answer
if now == target and idx == len(numbers) :
# print(lis)
answer+=1
(+) 이전에 내가 푸렀던 문제들 중 비슷한 문제