코딩 테스트는, 일단 패턴에 익숙해지면 많은 문제를 해결할 수 있습니다. 알고리즘과 더 친하게 지낼수록, 코딩 면접을 준비하는 과정이 훨씬 즐거워질 것입니다.
이번에는 "20가지 필수 알고리즘을 통해 코딩 인터뷰 프로가 되기"를 번역하였습니다. 이 시리즈는 3편까지 이어집니다.
당신이 알아야 할 20가지 코딩 알고리즘 (2) - [https://careerly.co.kr/comments/76235]
당신이 알아야 할 20가지 코딩 알고리즘 (3) - [https://careerly.co.kr/comments/76617]
1️⃣ Sliding Window
- 사용: 일정한 범위를 유지하면서 이동할 때
- 자료구조: Array, String, HashTable
- 예시 문제:
[https://leetcode.com/problems/fruit-into-baskets/]
[https://leetcode.com/problems/longest-substring-with-at-least-k-repeating-characters/]
2️⃣ Islands (Matrix Traversal)
- 사용: matrix, 혹은 2D array를 순회하는 효율적인 방법을 찾을 때
- 자료구조: Matrix, Queue
- 예시 문제:
[https://leetcode.com/problems/number-of-islands/]
[https://leetcode.com/problems/flood-fill/]
3️⃣ Two Pointers
- 사용: 배열에서 각각 다른 원소를 가리키는 2개의 포인터를 조작할 때
- 자료구조: Array, String, LinkedList
- 예시 문제:
[https://leetcode.com/problems/squares-of-a-sorted-array/]
4️⃣ Fast & Slow Pointers
- 사용: 입력 값을 다른 속도로 순회하고 싶을 때
- 자료구조: Array, String, LinkedList
- 예시 문제:
[https://leetcode.com/problems/linked-list-cycle-ii/]
5️⃣ Merge Intervals
- 사용: 겹치는 간격을 처리할 때
- 자료구조: Array, Heap
- 예시 문제:
[https://leetcode.com/problems/merge-intervals/]
6️⃣ Cyclic Sort
- 사용: 입력 데이터가 고정된 범위 내에 있을 때
- 자료구조: Array
- 예시 문제:
[https://leetcode.com/problems/find-all-duplicates-in-an-array/]
[https://leetcode.com/problems/kth-missing-positive-number/]
7️⃣ In-place Reversal of a LinkedList
- 사용: LinkedList를 효율적으로 뒤집고 싶을 때
- 자료구조: LinkedList
- 예시 문제:
[https://leetcode.com/problems/rotate-list/]
🐣 원글에 사진과 함께 설명이 더 자세하게 나와있습니다.