프로그래머스 고득점 Kit - [타겟 넘버] 해설

조승찬·2023년 8월 19일
1

고득점 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;
}
profile
풀스택 개발자의 우당탕탕 개발일지

0개의 댓글