JavaScript 코딩테스트 핵심 메서드 및 알고리즘 정리
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

[05.15-05.18/WEIL] 코딩테스트 전전날 보는 JavaScript 요약

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • *JavaScript 개발자** (중급 이상, 코딩테스트 준비자)
  • *난이도**: 중간 (배열/객체 메서드, 알고리즘 구현 기초 지식 필요)

핵심 요약

  • 핵심 배열/문자열 메서드

- forEach, split, join, find, some, includes, slice, splice, Object.keys/values/entries

  • 알고리즘 패턴

- DFS, BFS, 이분 탐색, DP (피보나치, 하노이 탑), PriorityQueue(MinHeap)

  • 실무적 활용

- 배열 정렬 시 sort((a,b) => a - b) 사용, reduce로 합계 계산, map으로 변환, Object.entries로 배열 메서드 활용

섹션별 세부 요약

1. 배열 및 문자열 메서드

  • forEach: 배열 요소 순회 (인덱스 포함)
  • split/join: 문자열 분할 및 조합 (예: "Hello World".split(" ")["Hello", "World"])
  • find: 조건에 맞는 첫 요소 반환 (nums.find(e => e % 2 == 0)2)
  • includes: 배열 요소 존재 여부 확인 (nums.includes(3)true)
  • slice/splice: 복사 및 수정 (splice(1, 0, 'kiwi')로 요소 추가)

2. 객체 및 Math 활용

  • Object.keys/values/entries: 객체 키/값/엔트리 추출 (예: Object.entries(myObject)[['name', '싹쓰리'], ...])
  • Math: round, ceil, floor, abs 등 수학 연산 제공
  • sort: 정렬 시 sort((a,b) => a - b)로 수치 순서 정렬

3. 알고리즘 구현

  • DFS: 재귀로 노드 방문 (예: graph[start].forEach(e => dfs(e)))
  • BFS: 큐 사용 (예: queue.shift() 후 인접 노드 삽입)
  • 이분 탐색: binary_search로 중간 값 비교 (mid = Math.floor((start + end) / 2))
  • DP: 피보나치, 하노이 탑 문제 해결 (메모화 사용)

4. PriorityQueue 구현

  • enqueue: 노드 삽입 후 bubbleUp으로 우선순위 조정
  • dequeue: 최소값 추출 후 bubbleDown으로 재조정
  • bubbleUp/bubbleDown: 힙 구조 유지 (최소 힙 기준)

결론

  • 코딩테스트 실무 팁:

- 배열 정렬 시 반드시 sort((a,b) => a - b) 사용

- Object.entries로 객체 배열화 후 filter, map 활용

- PriorityQueue 구현 시 bubbleUp/bubbleDown 메서드 필수

- includes 대신 some/find으로 조건 검증 가능

  • 예제: [[1, 2], [3, 4]].flat()[1, 2, 3, 4] (깊이 우선 펴기)