[프로그래머스] 타겟넘버 (Python)

2021. 3. 23. 22:18·코딩 테스트
728x90

🍒문제

programmers.co.kr/learn/courses/30/lessons/43165

 

코딩테스트 연습 - 타겟 넘버

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

programmers.co.kr

 

🍒풀이

재귀함수를 사용해서 -numbers[idx] 또는 +numbers[idx]을 해주어총 합계를 구하였다.

idx가 numbers 리스트의 범위를 벗어나면 target 과 total 합계가 동일한지 확인한 후 동일하면 answer을 증가한다.

이때 solution 함수 내에다가 함수 선언 후 answer 변수를 쓰려면 nonlocal를,

solution 함수 밖에다가 함수 선언 후 answer 변수를 쓰려면 global answer라고 선언을 해준 후 카운트 해줘야한다.

 

🍒코드

def solution(numbers, target):
    answer = 0 
    
    def dfs(idx, numbers, total, target):
        if(idx >= len(numbers)):
            if total == target:
                nonlocal answer
                answer += 1
            return
        dfs(idx+1, numbers, total+numbers[idx], target)
        dfs(idx+1, numbers, total-numbers[idx], target)
        

    dfs(0, numbers, 0, target)
        
    return answer
728x90

'코딩 테스트' 카테고리의 다른 글

[프로그래머스] 뉴스 클러스터링 (Python)  (0) 2021.03.24
[프로그래머스] 게임 맵 최단거리 (C++)  (0) 2021.03.23
[프로그래머스] 가장 큰 정사각형 찾기 (Python)  (0) 2021.03.23
[프로그래머스] 문자열 압축 (Python)  (0) 2021.03.22
[기타] 시간 복잡도 / 예외처리  (0) 2021.03.20
'코딩 테스트' 카테고리의 다른 글
  • [프로그래머스] 뉴스 클러스터링 (Python)
  • [프로그래머스] 게임 맵 최단거리 (C++)
  • [프로그래머스] 가장 큰 정사각형 찾기 (Python)
  • [프로그래머스] 문자열 압축 (Python)
zoodi
zoodi
IT/개발 관련 지식을 기록하는 블로그입니다.
  • zoodi
    오늘의 기록
    zoodi
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 후기
        • 컨퍼런스
        • 일상리뷰
      • 금융경제
        • 뉴스
        • 금융IT용어
        • 경제 및 부동산
      • 코딩 테스트
      • 스터디
        • JAVA
        • Kotlin
        • Spring
        • React, Nextjs
        • 인공지능 AI
        • Cloud & k8s
        • Kafka
        • Database
        • Network
        • Algorithm
        • Hadoop
        • LINUX
        • R Programming
        • 기타 (소공, 보안)
      • 도서
      • 기타
  • 블로그 메뉴

    • 홈
    • 스터디
    • 금융경제
    • 후기
    • 기타
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    kafka
    Python
    db
    코테
    LeetCode
    pythoncodingtest
    코테공부
    Spring
    MySQL
    코딩
    codility
    프로그래머스
    스프링
    리트코드
    이분탐색
    코딜리티
    Kotlin
    C++
    코딩테스트
    금융용어
    java
    카카오코테
    자바
    CodingTest
    자료구조
    쿠버네티스
    알고리즘
    스프링부트
    springboot
    네트워크
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
zoodi
[프로그래머스] 타겟넘버 (Python)
상단으로

티스토리툴바