728x90
programmers.co.kr/learn/courses/30/lessons/43165
# 나의 코드
import itertools
def solution(numbers, target):
idx = [i for i in range(len(numbers))]
answer = 0
for i in range(len(numbers)):
minus = list(itertools.combinations(idx,i+1))
for j in range(len(minus)):
result = 0
for k in range(len(numbers)):
if k in minus[j]:
result -= numbers[k]
else:
result += numbers[k]
if result == target:
answer += 1
return answer
# 참고
from itertools import product
def solution(numbers, target):
l = [(x, -x) for x in numbers]
s = list(map(sum, product(*l)))
return s.count(target)
answer = 0
def DFS(idx, numbers, target, value):
global answer
N = len(numbers)
if(idx== N and target == value):
answer += 1
return
if(idx == N):
return
DFS(idx+1,numbers,target,value+numbers[idx])
DFS(idx+1,numbers,target,value-numbers[idx])
def solution(numbers, target):
global answer
DFS(0,numbers,target,0)
return answer
반응형
'전.py' 카테고리의 다른 글
프로그래머스 숫자의 표현 (level 2) (0) | 2021.01.11 |
---|---|
직사각형의 꼭짓점 3개 주어질 때 나머지 점의 좌표 구하기 (0) | 2021.01.11 |
프로그래머스 카펫 (level 2) (0) | 2021.01.09 |
정수 내림차순으로 정렬 (0) | 2021.01.07 |
숫자 입력받아 역순으로 출력 (0) | 2021.01.07 |