별점이 높은 강의들 중에서도 괜찮은 강의들만 모아봤다. 코딩테스트 대비 자바스크립트로 자료구조나 알고리즘을 구현한 한국어 지원 강의는 이것밖에 없지 않을까? 몇몇 알고리즘은 빠진 것 같아서 아쉬웠다. (위상정렬 이라던가...) 강의력 ⭐⭐⭐⭐⭐ 가성비 ⭐⭐⭐⭐⭐ 내용 ⭐⭐⭐⭐ 【한글자막】 JavaScript 알고리즘 & 자료구조 마스터클래스 보기만 해도 문제풀이 실력이 오르는 신기한 강의이다. 심화 버전도 있다면 좋을 것 같다. 여기도 위상정렬같은 알고리즘은 다루지 않는 것 같다. 강의력 ⭐⭐⭐⭐⭐ 가성비 ⭐⭐⭐⭐ 내용⭐⭐⭐⭐ 자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비) 자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비) - 인프런 | 강의 자바스크립트(JavaScript)로 코딩테스트를 준비..
문제 문제 링크 설명 반복문을 돌면서 단어를 집합에 넣는다. 이미 집합에 있는 단어이거나 이전 단어의 끝 문자와 현재 단어의 첫 문자가 다르면 계산해서 반환한다. 반복문을 다 돌았다면 [0, 0]을 반환한다. 코드 function solution(n, words) { let s = new Set(); s.add(words[0]); for (let i = 1; i < words.length; i++) { let prev = words[i - 1]; let curr = words[i]; if (s.has(curr) || prev.at(-1) !== curr.at(0)) { return [(i % n) + 1, parseInt(i / n) + 1]; } else s.add(curr); } return [0, ..
문제 문제 링크 설명 Stack을 활용해서 풀었다. 풀이 function solution(s) { let stack = [s[0]]; for (let i = 1; i < s.length; i++) { let c = s[i]; if (stack.at(-1) === c) stack.pop(); else stack.push(c); } return stack.length === 0 ? 1 : 0; }
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 수학적 지식으로 푼 분들도 계셨다. 나는 백준 2003번 수들의 합 2 문제처럼 투포인터 방식을 응용해서 풀었다. 코드 function solution(n) { let sum = 0; let answer = 0; let left = 1; for (let right = 1; right n) { while (sum > n) { sum -= left; left++; if (sum === n) answer++; } } } return answer; }
문제 바로가기 설명 DFS나 BFS를 알면 쉽게 풀 수 있는 문제이다.visited를 초기화 할 때, Array.from()을 사용했다.아래와 같은 다른 방식들도 가능하다. visited = new Array(n).fill(false); let visited = []; for(var i =0; i false); let queue = []; function bfs(number) { if (visited[number]) { return; } answer++; visited[number] = true; queue.push(number); while (queue.length) { node = queue.shift(); visited[node] = true; for (let i = 0; i < n; i++) { ..
문제 [프로그래머스] Lv.2 타켓 넘버 설명 DFS로 풀었다. dfs함수의 인자로 인덱스와 부호를 넘겨주었다. 1. 배열의 마지막 요소일 때 sum === target 이라면 answer를 1증가 2. 배열의 다음 요소를 +일때와 -일때 2개로 나누어 dfs로 호출한다. 코드 function solution(numbers, target) { let sum = 0; let answer = 0; function dfs(i, sign) { if (i === numbers.length - 1) { if (sum === target) { answer++; } } else { //+ sum += numbers[i + 1]; dfs(i + 1, "+"); sum -= numbers[i + 1]; //- sum -=..
Array.from() 메서드는 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운Array 객체를 만든다. Array.from은 새로운 배열을 반환하며, 원본 객체는 변경되지 않는다. 구문 Array.from(arrayLike[, mapFn[, thisArg]]) 매개변수 arrayLike 배열로 변환하고자 하는유사 배열 객체나 반복 가능한 객체. mapFn (선택) 배열의 모든 요소에 대해 호출할 맵핑 함수. 매핑 함수는 선택적으로 사용할 수 있으며, 각 요소에 대해 실행되어 변환된 배열을 생성한다. thisArgOptional (선택) mapFn 실행 시에 this로 사용할 값. 예시1 이터러블 객체를 배열로 변환하기 문자열은 이..
[인프런] 자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비) - 미로탐색 내 코드 function solution(board) { let answer = 0; let visited = Array.from(Array(7), () => Array(7)); let dx = [0, 0, -1, 1]; let dy = [-1, 1, 0, 0]; function DFS(x, y) { if (x === 6 && y === 6) { answer++; return; } for (let i = 0; i = 7 || ny = 7) { continue; } if (!visited..