320x100
문제 : leetcode.com/problems/combination-sum/
정수형 배열 candidates이 주어질 때 이들을 더해서 target을 만들 수 있는 배열을 구해라.
이 때, candidates 값은 중복해서 더해질 수 있다.
오랜만에 찾아온 백트래킹 친구.
fun backtracking(index, target, 저장배열[]) {
if (target == 0) 정답배열에 저장배열 추가.
if (target < 0) 정답 불가능하므로 종료.
for(num = candidates[index, 끝]) {
저장배열 뒤에 num 추가.
backtracking(index, target - num, 저장배열)
저장배열 뒤에 추가한 num 삭제.
}
}
시간복잡도는 O(|candidates| * target).
소스코드 : github.com/fpdjsns/Algorithm/blob/master/leetcode/medium/39.%20Combination%20Sum.cpp
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[leetcode][189] Rotate Array (0) | 2020.10.16 |
---|---|
[leetcode][701] Insert into a Binary Search Tree (0) | 2020.10.06 |
[leetcode][216] Combination Sum III (0) | 2020.09.12 |
[leetcode][42] Trapping Rain Water (1) | 2020.08.22 |
[leetcode][295] Find Median from Data Stream (0) | 2020.08.17 |
댓글