프로그래머스/lv.2
(프로그래머스) lv.2 타겟넘버
bingual
2024. 1. 15. 16:49
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/43165
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
최소 값을 구하란 말은 없었기에 재귀를 이용해서 풀이
def solution(numbers, target):
def dfs(i, current):
# 순회를 완료 했을때 현재 까지 계산한 값이 타겟과 같다면 1 아니면 0 리턴
if i == len(numbers):
return 1 if current == target else 0
add = dfs(i + 1, current + numbers[i]) # 경우의 수 만큼 더하기
sub = dfs(i + 1, current - numbers[i]) # 경우의 수 만큼 빼기
return add + sub # 더하고 빼서 얻은 조합의 합계
answer = dfs(0, 0)
return answer