반응형
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
'프로그래머스 > lv.2' 카테고리의 다른 글
JadenCase 문자열 만들기 (0) | 2024.02.03 |
---|---|
최댓값과 최솟값 (0) | 2024.02.03 |
(프로그래머스) lv.2 미로 탈출 (0) | 2024.01.19 |
(프로그래머스) lv.2 게임 맵 최단거리 (0) | 2024.01.15 |
(프로그래머스) lv.2 가장 큰 수 (0) | 2024.01.15 |