[프로그래머스 LV1] 삼총사

Junyoung Park·2022년 11월 30일
0

코딩테스트

목록 보기
628/631
post-thumbnail

1. 문제 설명

삼총사

2. 문제 분석

  • DFS를 통해 조합을 구현했다. 더 이상 재귀가 돌지 않는 조건은 주어진 카운트가 3일 때.

3. 나의 풀이

import Foundation

func solution(_ number:[Int]) -> Int {
    var answer = 0
    
    func depthFirstSearch(_ index: Int, _ sum: Int, _ count: Int) {
        if count == 3 {
            if sum == 0 {
                answer += 1
            }
            return
        } 
        
        for nextIndex in (index+1)..<number.count {
            depthFirstSearch(nextIndex, sum + number[nextIndex], count + 1)
        }
    }
    
    for firstIndex in 0..<number.count {
        depthFirstSearch(firstIndex, number[firstIndex], 1)
    }
    return answer
}
profile
JUST DO IT

0개의 댓글