프로그래머스 : 타겟 넘버
https://programmers.co.kr/learn/courses/30/lessons/43165
문제풀이
이번 문제는 DFS/BFS 관련 문제입니다.
풀이 자체는 간단하지만, 고민을 했던 문제였고 최종적으로는 다른 풀이를 참고했습니다.
풀이는 재귀적 방식으로 주어진 배열의 길이만큼 +와 -연산을 했을 때, 타겟 넘버가 되는 시점을 찾으면 됩니다.
코드
function solution(numbers, target) {
let answer = 0;
function dfs(index, sum){
if(index === numbers.length){
if(target === sum) answer++;
return;
}
dfs(index+1, sum+numbers[index]);
dfs(index+1, sum-numbers[index]);
}
dfs(0,0);
return answer;
}
리뷰
DFS 관련 문제 중에서 쉬운편에 속해 보였는데, 너무 오랜만에 푸는 문제 유형이라 아직 머리가 적응을 못했던 것 같습니다.
알고리즘 문제에서 재귀를 사용하는 것은 빈번하니 이번 기회에 다시 감을 잡기 위해 공부해야 될 것 같습니다 ㅜㅜ
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
네트워크 / js 풀이 (0) | 2021.07.26 |
---|---|
오픈채팅방 / js 풀이 (0) | 2021.07.26 |
크레인 인형뽑기 게임 / js 풀이 (0) | 2021.07.07 |
키패드 누르기 / js 풀이 (0) | 2021.07.02 |
멀쩡한 사각형 / js 풀이 (0) | 2021.06.29 |