😎풀이

  1. backTracking함수를 정의 한다.
    1-1. 현재 수집된 nums의 길이가 k개 되었을 때 합계가 n과 같다면, 정답 배열에 추가
    1-2. 이전 추가된 수(start) + 1 부터 9 이하의 수를 탐색하며 백트레킹 진행
  2. 초깃값을 입력하여 backTracking 실행
  3. 결괏값 반환
function combinationSum3(k: number, n: number): number[][] {
    const result = []
    function backTracking(nums: number[], start: number, sum: number) {
        if(nums.length === k) {
            if(sum === n) result.push([...nums])
            return
        }
        for(let i = start + 1; i <= 9; i++) {
            nums.push(i)
            backTracking(nums, i, sum + i)
            nums.pop()
        }
    }
    backTracking([], 0, 0)
    return result
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글