보글보글 개발일지
반응형

문제

https://school.programmers.co.kr/learn/courses/30/lessons/43165?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

DFS를 써서 풀었다. 문제 자체는 어렵지 않은데 파이썬이 아직 익숙하지 않아서 global 함수를 다루는 데에 애를 먹었다..

 

[Python] nonlocal, global로 변수의 scope 변경하기 (파이썬에서 전역변수 사용하기)

👀 다른 scope에 있는 변수를 사용할 때 문제 case 1. 더 넓은 범위에 있는 변수 '읽기'는 가능 아래와 같이 전역변수로 n을 선언하고 이를 함수 내에서 읽기만 하는 경우 에러가 나지 않는다. n = 0 de

juhi.tistory.com

 

프로그래머스 고득점 Kit - 타겟 넘버 (DFS/BFS) Level2 파이썬

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

namhandong.tistory.com

위 페이지들를 참고해서 풀었다!

코드

answer = 0 #answer을 전역변수로 선언
def dfs(numbers, target, idx, result):
    global answer #전역변수 answer을 사용하겠다
    if(idx == len(numbers)):
        if(result == target):
            answer+=1
        return
    else:
        dfs(numbers,target,idx+1, result+numbers[idx])
        dfs(numbers,target,idx+1, result-numbers[idx])

def solution(numbers, target):
    global answer #전역변수 answer을 사용하겠다
    dfs(numbers,target,0,0)
    return answer
반응형
profile

보글보글 개발일지

@보글

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!