algorithm/프로그래머스 문제

[LV2]타겟 넘버

장경훈 2022. 7. 11. 16:10
 
[LV2]타겟 넘버 문제 링크

n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다.
www.programmers.co.kr

 

문제해설

이 문제는 기본적으로 숫자의 개수가 2~20개이기 때문에 모든 경우를 탐색해도 시간초과가 일어나지 않는다. 그렇기 때문에 앞에서부터 연산한 숫자들을 모두 리스트에 넣은 후 COUNT함수를 사용하여 target과 동일한 숫자가 몇개인지 찾으면 되는 문제이다.

def solution(numbers, target):
    start=[0] #초기값
    for i in numbers: #앞에서부터 연산
        num=[]
        for j in start: #앞서 연산되어있던 숫자들에 각각 +,-연산을 실행하여 다시 리스트에 저장
            num.append(j+i) 
            num.append(j-i)
        start=num
    return start.count(target) #타겟과 같은 숫자의 수 반환

 

'algorithm > 프로그래머스 문제' 카테고리의 다른 글

[프로그래머스 LV2] 튜플  (0) 2022.07.14
[LV2]위장  (0) 2022.07.13
[LV2]전화번호 목록  (0) 2022.07.13
[LV2]조이스틱  (0) 2022.07.12
[LV2]짝지어 제거하기  (0) 2022.07.11