새소식

인기 검색어

프로그래머스/Lv.2

[Swift] 타겟넘버

  • -
func solution(_ numbers:[Int], _ target:Int) -> Int {
    
  var count = 0
  
  func DFS(index: Int, sum: Int) {
    if index == (numbers.count - 1) && sum == target { // 마지막 인덱스까지 모두 계산한 값이 target과 같다면
      count += 1 // count를 +1해주고
      return // 더 이상 계산할 값이 없으므로(자식노드가 없으므로) return 해준다
    }

    guard index + 1 < numbers.count else { return }
    
    DFS(index: index+1, sum: sum + numbers[index + 1]) // +자식 노드 실행
    DFS(index: index+1, sum: sum - numbers[index + 1]) // -자식 노드 실행
  }
  
  DFS(index: -1, sum: 0)
  
  return count
}

'프로그래머스 > Lv.2' 카테고리의 다른 글

[Swift] 압축  (1) 2023.03.13
[Swift] 주차 요금 계산  (0) 2023.02.07
[Swift] k진수에서 소수 개수 구하기  (0) 2023.02.05
[Swift] 프린터  (0) 2023.02.05
[Swift] N개의 최소공배수  (0) 2023.02.05
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.