JavaScript 코딩테스트 대비 정리 (레벨 5)
·
Language/JavaScript
레벨 5는 알고리즘 문제 풀이에서 가장 높은 난이도를 가진 단계입니다. 복잡한 자료구조와 고급 최적화 기법을 자바스크립트로 구현할 수 있어야 하며, 성능과 메모리 효율을 고려한 코드 작성 능력이 요구됩니다.🧠 핵심 주제1. 메모이제이션 (Memoization)중복 계산을 피하기 위한 값 저장 기법입니다.const memo = {};function fib(n) { if (n DFS + DP 유형에서도 자주 사용됩니다. 키로 (node, step) 형태의 값을 Map에 저장해 중복 탐색을 방지합니다.2. 캐싱입력이 동일한 연산 결과를 저장합니다. 메모이제이션과 유사하나 범용적입니다.const cache = new Map();function expensiveFn(x) { if (cache.has(x)) ..
JavaScript 코딩테스트 대비 정리 (레벨 4)
·
Language/JavaScript
레벨 4에서는 심화된 알고리즘과 자료구조를 JavaScript로 다룰 수 있어야 합니다. 그래프와 트리 등 복잡한 구조의 탐색, 백트래킹, 동적 계획법, 그리고 언어의 한계를 뛰어넘는 최적화 기법 등이 요구됩니다.그래프 탐색 (DFS/BFS 활용)그래프 표현: 인접 리스트/행렬로 표현방문 처리: 배열 또는 Set 사용다중 컴포넌트 탐색 필요가중치 그래프: 다익스트라(우선순위 큐 필요), 0-1 BFS, A* 알고리즘트리 구조 및 조작트리 순회: 전위, 중위, 후위 (DFS/BFS 활용)트라이(Trie) 구현:class TrieNode {constructor() { this.children = {}; this.end = false; }}class Trie {constructor() { this.root =..
JavaScript 코딩테스트 대비 정리 (레벨 3)
·
Language/JavaScript
레벨 3에서는 재귀 알고리즘과 자료구조를 직접 구현하거나 활용하는 문제가 등장합니다. 재귀 호출, 그래프 탐색, 큐/스택 구현, 이진 탐색과 같은 알고리즘 패턴을 자바스크립트로 다룰 수 있어야 합니다. 또한 문자열/배열 조작 기법과 일부 유용한 메서드의 심화 사용이 요구됩니다.✅ 재귀 함수재귀는 함수가 자기 자신을 호출하여 문제를 해결하는 기법입니다. 예를 들어 팩토리얼 계산이나 DFS 탐색을 재귀로 구현할 수 있습니다. 종료 조건(base case)을 명확히 해야 하며, 너무 깊은 재귀는 Maximum call stack size exceeded 오류가 발생할 수 있습니다.function factorial(n) { if (n ✅ DFS / BFS (깊이/너비 우선 탐색)DFS재귀 또는 스택으로 구현하..
JavaScript 코딩테스트 대비 정리 (레벨 2)
·
Language/JavaScript
코딩테스트에서 기본적인 문제를 해결하려면 자바스크립트 문법 중에서도 조금 더 실전적인 도구들을 다룰 줄 알아야 합니다.레벨 2에서는 고차 함수, 객체/Set/Map 활용, 정렬과 정규식, 그리고 ES6 이상의 편의 문법들을 중심으로 정리합니다.✅ 고차 함수 (map, filter, reduce)map: 각 요소에 함수를 적용해 새로운 배열 생성[1, 4, 9].map(x => x * 2); // [2, 8, 18]filter: 조건에 맞는 요소만 걸러냄[5, 12, 8].filter(x => x >= 10); // [12]reduce: 모든 요소를 누적 계산[2, 4, 6].reduce((sum, num) => sum + num, 0); // 12※ reduce 사용 시 빈 배열 체크 & 초기값 설정 주..
JavaScript 코딩테스트 대비 정리 (레벨 1)
·
Language/JavaScript
코딩테스트를 준비할 때 반드시 알고 있어야 할 JavaScript 기초 문법과 함수들을 정리한 문서입니다.이 문서는 레벨 1 (입문) 수준으로 구성되어 있으며, 변수 선언, 조건문, 반복문, 배열/문자열 처리, 내장 함수 사용 등을 포함합니다.✅ 변수 선언: var, let, constvar: 함수 스코프, 중복 선언 가능, 호이스팅 발생 (초기화 없이 사용 가능). 사용 비추천.let: 블록 스코프, 호이스팅은 되지만 TDZ(일시적 사각지대)로 초기화 전 사용 불가.const: 블록 스코프, 재할당 불가. 기본적으로 상수 선언에 사용.일반적으로 const → 재할당 없는 값, let → 재할당 가능한 값, var는 사용 지양.✅ 조건문 (if / 삼항 연산자)if (조건) { // 실행 코드} els..