No Limitation
[DFS] 타겟 넘버 - 프로그래머스 본문
https://programmers.co.kr/learn/courses/30/lessons/43165?language=python3
Fact Finding
- 재귀 함수를 통한 DFS 구현
- '+'와 '-'를 번갈아서 적용해주어 모든 경우의 수를 check
- 이 중 타겟 넘버와 일치할 때 +1 증가시키고 recursion 수행
Time Complexity
- 최악의 경우 O(n^2)로 판단되는 데 정확히 분석한 것인지 확실하지 않음
def problem(arr, target, ans, i, sums = 0) :
if i == len(arr) :
sums = sum(arr)
if (sums == target) :
ans += 1
return ans
i += 1
ans = problem(arr, target, ans, i)
i -= 1
arr[i] = -arr[i]
i += 1
ans = problem(arr, target, ans, i)
return ans
def solution(numbers, target):
ans = 0; i = 0;
answer = problem(numbers, target, ans, i)
return answer
'프로그래밍' 카테고리의 다른 글
[DFS] 단어 변환 - 프로그래머스 (0) | 2022.01.30 |
---|---|
[DFS,UnionFind] 네트워크 - 프로그래머스 (0) | 2022.01.30 |
[Hash] 베스트 앨범 - 프로그래머스 (0) | 2022.01.30 |
[Hash] 전화번호 목록 - 프로그래머스 (0) | 2022.01.30 |
[heap] 이중우선순위큐 - 프로그래머스 (0) | 2022.01.30 |