728x90
반응형
SMALL
프로그래머스 Level 2 타켓 넘버를 파이썬을 통해 풀어보았다.
https://programmers.co.kr/learn/courses/30/lessons/43165
Level 2 - 타겟 넘버
DFS로 해결할 수 있는 문제이다. 각 단계들을 탐색하며 한번은 더해주고 한번은 빼준다. 마지막 단계까지 왔을 때 target 값과 같다면 answer을 하나 증가시킨다.
DFS로 분류되어 있는 문제라 굳이 DFS로 풀어봤지만 재귀 함수나 DP로도 풀 수 있을 듯 하다.
#Level 2 타겟 넘버.py
def solution(numbers, target):
answer = 0
def DFS(num, level) :
nonlocal answer
if level == len(numbers) :
if num == target :
answer += 1
return
if level == 1 :
DFS(num+numbers[level],level+1)
DFS(num-numbers[level],level+1)
DFS(-1*num+numbers[level],level+1)
DFS(-1*num-numbers[level],level+1)
else :
DFS(num+numbers[level],level+1)
DFS(num-numbers[level],level+1)
DFS(numbers[0],1)
return answer
728x90
반응형
SMALL
'Problem Solving > programmers' 카테고리의 다른 글
[programmers] Level 2 멀쩡한 사각형.py (0) | 2021.06.13 |
---|---|
[programmers] Level 2 짝지어 제거하기.py (0) | 2021.06.12 |
[programmers] Level 1 다트 게임.py (0) | 2021.06.10 |
[Programmers] Level 1 비밀지도.py (0) | 2021.06.08 |
[programmers] 문자열 내 마음대로 정렬하기.java (0) | 2021.05.21 |