반응형
문제
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
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스/42889][Python] 실패율 (0) | 2023.05.17 |
---|---|
[프로그래머스/43162][Python] 네트워크 (0) | 2023.04.14 |
[백준/15666][파이썬] N과 M(12) (0) | 2023.04.11 |
[백준/15665][파이썬] N과 M(11) (0) | 2023.04.11 |
[백준/15664][파이썬] N과 M(10) (0) | 2023.04.11 |