문제
https://programmers.co.kr/learn/courses/30/lessons/43165
나의 코드
import collections
def solution(numbers, target):
answer = 0
answer_list=collections.deque([numbers[0],-numbers[0]])
for i in numbers[1:]:
for j in range(len(answer_list)):
tmp=answer_list.popleft()
answer_list.append(tmp+i)
answer_list.append(tmp-i)
for i in answer_list:
if i==target:
answer+=1
return answer
단순히 +, -를 하여 만들 수 있는 모든 경우의 수를 answer_list에 저장하고 마지막에 target과 같은 값을 count하는 식으로 문제를 해결하였다.
answer_list에 처음에 numbers의 첫번째 값을 +, -한 값을 저장,
numbers의 두번째 값부터 시작하는 for문으로 answer_list의 값 하나씩 불러와서 +한 값, -한 값을 다시 deque에 추가,
'공부-코딩테스트 > 코테풀이 - 자바, 파이썬' 카테고리의 다른 글
프린터 (코딩테스트, 프로그래머스) (0) | 2022.01.20 |
---|---|
메뉴 리뉴얼 (코딩테스트, 프로그래머스) (0) | 2022.01.19 |
코딩테스트 문제 : 거리두기 확인하기 (프로그래머스) (0) | 2022.01.13 |
피로도 파이썬(프로그래머스) (0) | 2022.01.05 |
삼각 달팽이-파이썬 (프로그래머스) (0) | 2021.12.30 |
댓글