티스토리 뷰

728x90
반응형

문제

https://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

 

코드

def solution(numbers, target):
    answer = 0
    a=[0]
    for i in numbers:
        b=[]
        for j in a:
            b.append(j+i)
            b.append(j-i)
        a=b
    return a.count(target)

0으로 시작해서 +1, -1을 계속해서 더해가고 마지막 리스트에서 target이랑 같은 값이 몇개 있는지 확인해주면 된다.

[1, -1]

[2, 0, 0, -2]

[3, 1, 1, -1, -1, 1, -1, -1, -3]

...

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31