고득점 Kit - 깊이/너비 우선 탐색(DFS/BFS)
Lv.2 - 타겟 넘버 해설 코드 공유합니다
네 뭐 풀긴 했는데..
푼 지 좀 되어서 오랜만에 글을 쓰려니까 왜이렇게 풀었는지 기억이 안나네요 ㅋㅋㅋ
나중에 다시 풀어보고 해설 남기겠습니다.
일단 그냥 참고만 하세요
class Queue {
constructor() {
this.items = [];
}
enqueue(elem) {
this.items.push(elem);
}
dequeue() {
return this.items.shift();
}
isEmpty() {
return this.items.length === 0;
}
}
function searchTree(numbers, array, target) {
let queue = new Queue;
let index = 1;
let answer = 0;
queue.enqueue([numbers[0], -numbers[0]]);
while(!queue.isEmpty()) {
let list = queue.dequeue();
if(index !== numbers.length){
let newList = [];
for(let num of list) {
newList.push(num + numbers[index]);
newList.push(num - numbers[index]);
}
queue.enqueue(newList);
index++;
} else {
for(let num of list) {
if (num === target){
answer++;
}
}
}
}
return answer;
}
function solution(numbers, target) {
let answer = 0;
let array = [];
answer = searchTree(numbers, array, target);
return answer;
}