Algorithm Problem/JavaScript

    [javascript] 프로그래머스 - 로또의 최고 순위와 최저 순위(2021 Dev-Matching: 웹 백엔드 개발자(상반기))

    🤔문제 해결 1. filter와 includes를 이용해서 로또 번호가 당첨 번호에 포함된 개수를 구함 2. filter를 이용해서 로또 번호의 0의 개수를 구함 3. 최소 당첨 개수는 그냥 당첨 개수 4. 최대 당첨 개수는 최소 당첨 개수 + 0의 개수 5. 순위를 구함 💨 💻소스 코드 function solution(lottos, win_nums) { var answer = []; var minWinningCnt = lottos.filter(number => win_nums.includes(number)).length; var maxWinningCnt = minWinningCnt + lottos.filter(number => number === 0).length; var rank = [6, 6, 5,..

    [javascript] 프로그래머스 - 네트워크

    [javascript] 프로그래머스 - 네트워크

    🤔문제 해결 Lv3 | DFS 몇개의 싸이클이 있는 지 찾아야 한다. DFS(BFS)를 이용해도 무방하다. 전체 네트워크 중 하나를 차례로 선택한다. DFS로 visited를 체크하며 돌린다. DFS가 끝나면 그게 한 싸이클이 된다. (네트워크의 수) 아직 방문하지 않은 나머지 네트워크를 하나씩 차례로 선택하면서 위의 과정을 반복한다. 💻소스 코드 function solution(n, computers) { var answer = 0; let visited = Array(n).fill(0) let stack = [] for (let i = 0; i 0)..

    [javascript] 프로그래머스 - 단어 변환

    [javascript] 프로그래머스 - 단어 변환

    🤔문제 해결 Lv3 | BFS begin 에서 시작하여 BFS 탐색 BFS는 target과의 거리를 알 수 있으므로 target과의 최단거리를 구해서 답을 출력 아래의 코드에서는 visited와 words_obj를 사용했지만 잘 짜보면 words_obj 하나로 충분히 구현할 수 있다! 💻소스 코드 function solution(begin, target, words) { var answer = 0; // 타겟이 워드에 없는 경우 if (!words.includes(target)) { return answer } let n = words.length // visited 와 queue let visited = Array(n).fill(0) let q = [begin] // 단어의 인덱스를 객체에 저장 con..

    [javascript] 프로그래머스 - 두 개 뽑아서 더하기

    [javascript] 프로그래머스 - 두 개 뽑아서 더하기

    🤔문제 해결 1. 2중 포문을 이용하여 서로 다른 2 숫자를 더한 값을 배열에 담는다. 2. 중복을 제거한다 set 3. 정렬한다. 💨 💻소스 코드 function solution(numbers) { var answer = []; for ( var i = 0; i { return a-b }) return result; } 📕문제 확인 출처: 프로그래머스 링크: https://progra..

    [JavaScript] 프로그래머스 - 베스트앨범

    [JavaScript] 프로그래머스 - 베스트앨범

    문제 해결 1. 해시 2. 주어진 genres와 plays를 객체 형태로 만든다. (1) ex) { 장르이름: { 총 재생 횟수: 500, 노래들: [[200, 1], [300, 5]] } 3. 만들어진 객체를 총 재생 횟수로 내림차순 정렬한다. 4. 각각의 장르에서 노래를 두개씩 뽑아 answer 에 넣는다. (1) 각각의 장르에서 노래들을 꺼내 내림차순 정렬한다. (2) 그 때 재생횟수가 같다면 인덱스로 오름차순 정렬한다. (3) 정렬 후 노래를 두개 꺼내 answer 에 넣는다 (4) 만약 노래가 하나라면 정렬하지 않고 그냥 넣는다. ( 두개 일 경우에도 정렬은 필요 없으나 노래가 하나인지 그 이상인지가 중요하므로) 🌤 문제를 풀어 본 후 여러가지 풀이를 찾았다. 자바스크립트를 공부하는 목적은 알고..

    [JavaScript] 프로그래머스 - 프린터

    [JavaScript] 프로그래머스 - 프린터

    문제 해결 1. 인쇄되는 조건과 내 문서의 위치 그리고 인쇄가 몇번 됐는지 체크하며 문제를 해결한다. 2. 맨 앞의 문서를 꺼내고 우선순위가 제일 높은지 확인한다. 3. 우선순위가 제일 높다면 인쇄를 하고 카운트를 올려준다. 4. 아니라면 꺼낸 문서를 맨 뒤에 집어 넣는다. 5. 문서를 꺼낼 때마다 내문서의 위치를 바꿔준다. 6. 다시 2번으로 돌아가 반복한다. 😎 스택/큐 문제이다. 소스 코드 function solution(priorities, location) { var answer = 0; // 인쇄를 몇번 했는지 var cnt = 0 // 내문서의 위치 var myDoc = location while (priorities.length > 0) { // 맨 앞의 문서를 꺼낸다 var c = pri..