programmers.co.kr/learn/courses/30/lessons/43165?language=python3
코딩테스트 연습 - 타겟 넘버
n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+
programmers.co.kr
from collections import deque
def solution(numbers, target):
result=[0]
for i in range(len(numbers)):
temp = []
for j in range(len(result)):
temp.append(result[j]-numbers[i])
temp.append(result[j]+numbers[i])
result=temp
return result.count(target)
[프로그래머스 DFS/BFS]타겟 넘버 - Python3
문제 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 | 프로그래머스 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예.
sexy-developer.tistory.com
정말 몰라서 이분 껄 참고 했다....
다른 풀이 bfs
from collections import deque
def solution(numbers, target):
q = deque()
answer = 0
idx = 0
q.append([numbers[idx],idx])
q.append([-1*numbers[idx],idx])
while q:
temp, idx = q.popleft()
idx+=1
if idx < len(numbers):
q.append([temp-numbers[idx], idx])
q.append([temp+numbers[idx], idx])
else:
if target == temp:
answer+=1
return answer
반응형
'코딩 > 프로그래머스 lv2' 카테고리의 다른 글
카펫 (0) | 2021.04.27 |
---|---|
H-Index (0) | 2021.04.27 |
가장 큰 수 (0) | 2021.04.26 |
[프로그래머스] 큰 수 만들기 - 파이썬 (0) | 2021.04.24 |
주식가격 (0) | 2021.04.24 |