티스토리 뷰

알고리즘/level2

[javascript] 타켓 넘버

민트초코수장 2021. 1. 25. 23:52

1. 문제


2. 문제 설명

 

배열에 담긴 숫자들을 가지고 + 혹은 -를 해서 target에 맞는 숫자를 만드는 경우를 반환한다.

 


3. 풀이 

재귀함수를 이용한 DFS로 풀었는데 이 경우에는 BFS도 사용 가능하다고 본다.

 

DFS함수를 만들어 처음시작할 인덱스와 숫자들을 가지고 있는 numbers와 target을 파라미터로 넘겨준다.

 

그리고 그것을 계산할 함수인 cal을 리턴값으로 주고 0부터 시작해 numbers에 있는 값들을 더하거나 뺀 경우의 수를 모두 더해본다.

 

그럼 빼거나 더하는 경우의 수가 다 이루어지게 되고

index와 numbers의 길이가 같게 되면 target과 비교하여 되는 경우의 수를 리턴값으로 보내준다.

 


하면서 return값을 함수로 주었을 때 파라미터의 초기값을 어떻게 줄지 난감했는데 가장 아래에 정해줄 수 있다는 것을 알게 되었다.

 

그리고 return값이 계속 반복되면 return값이 더해져 마지막 return값으로 보내진다는 것도 알게 되었다.

 

 

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

 

반응형

'알고리즘 > level2' 카테고리의 다른 글

프로그래머스[javascript] 멀쩡한 사각형  (0) 2021.02.06
[javascript] 스킬트리-프로그래머스  (0) 2021.01.17
[javascript] 기능개발  (0) 2021.01.15
위장  (0) 2020.12.23
Comments