[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]
(깊이 우선 펴기)