n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.
-1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3
사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요.
1. 최종 값을 위한 변수와 계산 결과를 위한 리스트 변수 선언 [answer, result]
2. numbers 의 값들을 하나씩 계산하기 위해 for문 작성
3. 계산 값을 임시로 저장할 리스트 선언 [temp]
4. result의 값들을 하나씩 계산하기 위해 for문 작성
5. numbers 의 값들을 모두 순회한 후 result에 저장된 최종 값들을 target과 비교
6. 최종 값을 반환
def solution(numbers, target):
# 풀이과정 1
answer = 0 # 최종 타겟 넘버 가능 수를 저장할 변수
result = [0] # 계산 결과를 담을 리스트
# 풀이과정 2
for num in numbers: # 값을 하나씩 비교하기 위해 for 문 사용
# 풀이과정 3
temp = [] # 임시 저장 리스트 변수
# 풀이과정 4
for r in result: # 각 값 마다 더하고 빼고를 반복하기위해 반복
temp.append(r + num)
temp.append(r - num)
result = temp
# 풀이과정 5
for r in result: # 순회하며 타켓 값과 같은 값이 있을 경우 카운트 증가
if r == target:
answer += 1
return answer
정확성: 100.0
합계: 100.0 / 100.0