[프로그래머스] 타겟 넘버 | kotlin

2025. 1. 16. 16:52·학습 기록/문제풀이
반응형

문제 설명

n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.

-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3

사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요.

 

제한사항

  • 주어지는 숫자의 개수는 2개 이상 20개 이하입니다.
  • 각 숫자는 1 이상 50 이하인 자연수입니다.
  • 타겟 넘버는 1 이상 1000 이하인 자연수입니다.

풀이

class Solution {
    val visit: BooleanArray = BooleanArray(20) { false }
    var answer = 0
    fun solution(numbers: IntArray, target: Int): Int {

        dfs(numbers, target, 0, 0)
        return answer
    }

    fun dfs(numbers: IntArray, target: Int, depth: Int, sum: Int) {
        if (depth == numbers.size) {
            if (sum == target) {
                answer++
            }
        } else {
            dfs(numbers, target, depth + 1, sum + numbers[depth])
            dfs(numbers, target, depth + 1, sum - numbers[depth])
        }
    }
}

 

문제 링크

 

반응형

'학습 기록 > 문제풀이' 카테고리의 다른 글

[프로그래머스] 단어 변환 | kotlin  (0) 2025.01.16
[프로그래머스] 피로도 | kotlin  (0) 2025.01.16
[프로그래머스] 튜플 | kotlin  (0) 2025.01.16
[프로그래머스] 숫자 짝꿍 | kotlin  (0) 2025.01.16
[프로그래머스] 연속 부분 수열 합의 개수 | kotlin  (0) 2025.01.13
'학습 기록/문제풀이' 카테고리의 다른 글
  • [프로그래머스] 단어 변환 | kotlin
  • [프로그래머스] 피로도 | kotlin
  • [프로그래머스] 튜플 | kotlin
  • [프로그래머스] 숫자 짝꿍 | kotlin
BaekCCI
BaekCCI
  • BaekCCI
    BaekLog
    BaekCCI
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 학습 기록
        • 안드로이드
        • 문제풀이
        • kotlin
      • 우아한 테크코스
      • 백씨의 하루
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코틀린
    백준
    Android
    우아한테크코스
    우테코
    Java
    Algorithm
    Kotlin
    i/o extended android
    gdg korea
    프로그래머스
    알고리즘
    소프티어
    androiddeveloper
    softeer
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.6
BaekCCI
[프로그래머스] 타겟 넘버 | kotlin
상단으로

티스토리툴바