-
[프로그래머스] 타겟 넘버Algorithm/Programmers 2020. 8. 20. 22:08
https://programmers.co.kr/learn/courses/30/lessons/43165
코딩테스트 연습 - 타겟 넘버
n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+
programmers.co.kr
풀이과정
주어진 numbers배열의 값을 더하거나 빼서 target값이 되는 모든 경우의 수를 구하는 문제이다.
재귀함수를 이용하여 현재 numbers의 값을 +, -는 2가지 경우를 완전탐색하였다.
소스코드
더보기function solution(numbers, target) { var answer = 0; function solve(depth, curNumber) { if (depth == numbers.length) { if (target == curNumber) { answer++; } return; } for (var i = 0; i < 2; i++) { var number = i == 0 ? numbers[depth] * - 1 : numbers[depth]; solve(depth+1, curNumber + number); } } solve(0, 0); return answer; }
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 가장 큰 수 (0) 2020.08.23 [프로그래머스] 조이스틱 (0) 2020.08.22 [프로그래머스] 다리를 지나는 트럭 (0) 2020.08.20 [프로그래머스] 스킬트리 (0) 2020.08.19 [프로그래머스] 정수 삼각형 (0) 2020.07.29