2018년의 마지막 날, 익명의 온라인 포럼인 블라인드(Blind)에 New Year Gift - Curated List of Top 75 LeetCode Questions to Save Your Time라는 제목의 글이 하나 올라옵니다. 이 글은 해외 개발자 커뮤니티에서 입소문을 타면서 빠르게 퍼지기 시작했고 줄여서 Blind 75라고 불리게 됩니다.
Blind 75는 한정된 시간 내에서 최대한 효과적으로 코딩 테스트 준비할 수 있도록 선별된 75개의 필수 문제로 이루어져 있습니다. Blind 75를 통해서 왠만한 코딩 시험이나 면접에서 출제되는 대표적인 문제 유형을 골고루 접해볼 수 있습니다. 그래서 해외에서는 개발자 취업이나 이직을 준비할 때 Blind 75 문제로 시작을 하는 경우가 많습니다.
하지만 지원자들 사이에서 Blind 75가 너무 널리 알려지면서 오히려 많은 회사들이 변별력을 키우기 위해서 요즘에는 이 문제들을 피하는 경향도 있다고 합니다. 따라서 Blind 75는 어디까지나 코딩 테스트의 기초를 닦기 위한 준비의 “시작”이며 절대 “끝”이 아니라는 것을 기억하셨으면 좋겠습니다. 결국에는 어떤 문제를 만나시더라도 빠르게 유형을 파악하고 적합한 알고리즘과 자료구조를 적용하는 능력을 기르셔야 실전에서 좋은 결과를 얻으실 수 있으실 것입니다.
참고로 최근에는 해외 뿐만 아니라 국내에서도 개발자 기술 면접을 볼 때 LeetCode에서 문제를 출제하는 기업들이 늘고 있다고 합니다. 따라서 국내에서 이직을 준비하시는 분들께도 Blind 75 문제를 풀어보시면 이런 기업의 코딩 시험을 대비하는데 어느 정도 도움이 되실거라 생각합니다.
알고달레에서는 Blind 75의 전 문제에 대한 다양한 답안 코드를 친절한 해설과 함께 제공해드리고 있습니다. 아래에 카테고리 별로 알고달레 게시물을 나열해 두었으니 참고 바랍니다.
Array
- Two Sum
- Best Time to Buy and Sell Stock
- Contains Duplicate
- Product of Array Except Self
- Maximum Subarray
- Maximum Product Subarray
- Find Minimum in Rotated Sorted Array
- Search in Rotated Sorted Array
- 3Sum
- Container With Most Water
Binary
Dynamic Programming
- Climbing Stairs
- Coin Change
- Longest Increasing Subsequence
- Longest Common Subsequence
- Word Break Problem
- Combination Sum
- House Robber
- House Robber II
- Decode Ways
- Unique Paths
- Jump Game
Graph
- Clone Graph
- Course Schedule
- Pacific Atlantic Water Flow
- Number of Islands
- Longest Consecutive Sequence
- Alien Dictionary (Leetcode Premium)
- Graph Valid Tree (Leetcode Premium)
- Number of Connected Components in an Undirected Graph (Leetcode Premium)
Interval
- Insert Interval
- Merge Intervals
- Non-overlapping Intervals
- Meeting Rooms (Leetcode Premium)
- Meeting Rooms II (Leetcode Premium)
Linked List
- Reverse a Linked List
- Detect Cycle in a Linked List
- Merge Two Sorted Lists
- Merge K Sorted Lists
- Remove Nth Node From End Of List
- Reorder List
Matrix
String
- Longest Substring Without Repeating Characters
- Longest Repeating Character Replacement
- Minimum Window Substring
- Valid Anagram
- Group Anagrams
- Valid Parentheses
- Valid Palindrome
- Longest Palindromic Substring
- Palindromic Substrings
- Encode and Decode Strings (Leetcode Premium)
Tree
- Maximum Depth of Binary Tree
- Same Tree
- Invert/Flip Binary Tree
- Binary Tree Maximum Path Sum
- Binary Tree Level Order Traversal
- Serialize and Deserialize Binary Tree
- Subtree of Another Tree
- Construct Binary Tree from Preorder and Inorder Traversal
- Validate Binary Search Tree
- Kth Smallest Element in a BST
- Lowest Common Ancestor of BST
- Implement Trie (Prefix Tree)
- Add and Search Word
- Word Search II