[코딩 면접을 위해 꼭 알아둬야 하는 알고리즘 패턴 8가지와 문제 유형] 코딩 면접에 자주 출제되는 문제를 푸는데 도움 되는 알고리즘 패턴 14가지 중 6가지 소개합니다. 아티클에 나오지는 않았지만 자주 출제되었던 문제에 사용되는 2가지 패턴도 함께 공유합니다. 1️⃣ Breadth-First-Search Queue를 사용해서 트리나 그래프 전체에 있는 노드를 탐색하는 알고리즘입니다. 트리 레벨 탐색에 자주 사용되는 패턴입니다. 트리 너비 우선 탐색 알고리즘 문제 유형 * Binary tree level order traversal * Zig-zag traversal 📌 너비 우선 탐색 알고리즘의 경우 코드가 비슷합니다. 문제에 따라 큰 뼈대에서 조금씩 변형하는 경우가 많아서 트리와 크래프 BFS 코드를 어떻게 작성하는지 알아두면 문제 풀때 알고리즘 코드 짜는 것이 훨씬 수월할 수 있습니다. 📌 그래프 너비 우선 탐색 알고리즘 파이썬 코드 https://www.educative.io/answers/how-to-implement-a-breadth-first-search-in-python 📌 그래프 너비 우선 탐색 알고리즘 쉽게 설명해주는 영상 + 예시 문제 https://www.youtube.com/watch?v=tWVWeAqZ0WU&t=1787s 2️⃣ Depth-First-Search 깊이 우선 탐색은 recursion이나 stack을 사용해서 트리나 그레프를 탐색하는데 사용됩니다. 문제 접근 방식에따라 recursion 또는 stack을 사용합니다. 트리 깊이 우선 탐색 알고리즘 문제 유형 * Sum of path numbers * All paths for a sum 📌 깊이 우선 탐색 알고리즘의 경우 코드가 비슷합니다. 문제에 따라 큰 뼈대에서 조금씩 변형하는 경우가 많아서 트리와 크래프 DFS 코드를 어떻게 작성하는지 알아두면 문제 풀때 알고리즘 코드 짜는 것이 훨씬 수월할 수 있습니다. 📌 그래프 깊이 우선 탐색 알고리즘 파이썬 코드 https://www.educative.io/answers/how-to-implement-depth-first-search-in-python 📌 그래프 깊이 우선 탐색 알고리즘 쉽게 설명해주는 영상 + 예시 문제 https://www.youtube.com/watch?v=tWVWeAqZ0WU&t=1787s 3️⃣ Sliding Window 슬라이딩 윈도우 패턴은 고정 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 요소를 이용합니다. 슬라이딩 윈도우 문제 유형 * Maximum sum subarray of size “K” * Longest substring with “K” distinct characters * String anagrams (애너그램) 4️⃣ Fast & Slow Pointers 두 포인터를 사용하는데, 한 포인트는 느리게 이동하며 나머지 한 포이트는 빠르게 이동하는 알고리즘입니다. 두 포인터는 정렬된 배열의 각 요소를 비교해야 하는 경우에 유용합니다 Fast & Slow Pointers 문제 유형 * 3Sum * 백스페이스가 들어간 스트링 비교하기 5️⃣ Merge Intervals Interval 중 시작과 끝이 겹치는 구간이 있는 것을 하나로 병합하는 알고리즘 패턴입니다. Merge Interval 알고리즘 * Intervals intersection * Maximum CPU load 6️⃣ Binary Search 오름차순으로 정렬된 리스트에서 특정 값을 효과적으로 찾을 때 사용되는 알고리즘입니다. 여기서 중요한 점은 "정렬된 리스트"에서 탐색한다는 것! 🚨아티클에 나오지 않았지만 자주 출체되는 알고리즘 패턴🚨 현재까지 실면접과 모의 면접 합해서 100 군대 넘게 본 것 같은데, 아티클에 소개된 BFS와 DFS 문제가 가장 많이 출제되었던 것 같습니다. 이 두가지 알고리즘이 그래프와 트리에 어떻게 사용되는지 잘 숙지하는 것도 중요하지만 다이나믹 프로그래밍과 백트래킹 문제도 자주 출제되었던 것 같습니다. 1️⃣ Dynamic Programming 다이나믹 프로그래밍 문제를 사용해야하는 문제 유형이 있는데, 패턴을 파악해도 코드로 쓰는 것이 어려운 경우가 많습니다. 📌 다이나믹 프로그래밍 알고리즘 공부 관련 글은 지난번 포스팅을 참고해 주세요. https://careerly.co.kr/comments/60463 2️⃣ Backtracking 모든 경우의 수를 전부 고려하는 알고리즘입니다. Combination을 모두 찾는 문제는 Backtracking을 사용해서 풀어야 하는 경우가 대부분이며, dynamic programming처럼 알고리즘의 효율성에 중점을 둔 패턴은 아닙니다. 📌 백트래킹 알고리즘을 아주 쉽게 설명해주는 영상 추천합니다. https://www.youtube.com/watch?v=DKCbsiDBN6c 🪴 함께 읽으면 좋은 글: [알고리즘 문제 풀기 공부하는 법] https://careerly.co.kr/comments/60668 [해외 취업 "이것" 하나로 준비하기 - 무료 템플릿] https://careerly.co.kr/comments/59046

The Top 14 Patterns to Know Before Your Next Coding Interview | Blind

Blind

The Top 14 Patterns to Know Before Your Next Coding Interview | Blind

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 7월 20일 오전 3:06

 • 

저장 737조회 12,923

댓글 0