문제
numbers의 배열의 숫자들을 적절히 더하거나 빼서 타겟 넘버를 만들 수 있는 방법을 반환하는 문제
풀이 방법
완전 탐색 DFS로 풀이
numbers = [1,1,1] 이라면 위와 같이 탐색
코드
class Solution {
var answer = 0
fun solution(numbers: IntArray, target: Int): Int {
//target 에서 numbers의 값들을 빼거나 더해서 최종 0 이면 answer ++
DFS(target, numbers, 0, numbers.size-1)
return answer
}
fun DFS(target: Int, numbers: IntArray, index: Int, check : Int){
for(i in arrayOf(1, -1)){
var t = target
t += numbers[index]*i
if(index != check) DFS(t, numbers, index+1, check)
else if(index == check && t == 0) answer++
}
}
}
'코딩 테스트 > DFS' 카테고리의 다른 글
[프로그래머스] N-Queen with Kotlin (0) | 2024.04.04 |
---|---|
[프로그래머스] 2022 KAKAO BLIND RECRUITMENT 양궁대회 with Kotlin (2) | 2024.03.07 |
[프로그래머스] 2023 KAKAO BLIND RECRUITMENT 이모티콘 할인행사 with Kotlin (1) | 2024.03.06 |
[프로그래머스] 광물 캐기 Lv.2 with Kotlin (0) | 2024.02.19 |
[프로그래머스] 모음사전 with Kotlin (0) | 2023.11.30 |