프로그래머스(Python) 풀이/Level.2

프로그래머스(Python) 43165번 타겟 넘버 풀이

개발윗미 2022. 5. 4. 11:02

Python으로 구현한 43165번 타겟 넘버 문제 풀이입니다.

 

https://programmers.co.kr/learn/courses/30/lessons/43165

 

코딩테스트 연습 - 타겟 넘버

n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수

programmers.co.kr


def solution(numbers, target) :
    tree = [0] # 초기 값
    for i in range(len(numbers)) :
        value = []
        for j in range(len(tree)) :
            value.append(tree[j] - numbers[i]) # 빼기
            value.append(tree[j] + numbers[i]) # 더하기

        tree = value

    answer = tree.count(target)

    return answer

 

1. 이중 for문을 수행하여 tree[j] 에서 numbers[i]를 뺀 값과 더한 값을 value 리스트에 추가한다.

 

2. 내부 반복문이 끝나면 tree를 value로 갱신한다.

 

3. 반복문이 모두 끝나면 tree 리스트에 담겨있는 요소 중 target값의 개수를 가져와 반환한다.