[알고리즘 문제 풀기 공부하는 법]

코딩 인터뷰 문제만 1000가지가 넘는데, 학습 효과를 극대화하고 싶은 분들에게 아주 유용한 리소스와 공부법 공유합니다. 먼저 이 방법은 "Tech Interview Handbook"이라는 사이트를 사용합니다 (링크 첨부). 1️⃣ 1단계: 알고리즘 개념 Cheatsheet 훑어보기 https://www.techinterviewhandbook.org/algorithms/study-cheatsheet/ 알고리즘과 자료 구조 개념을 처음부터 다시 복습하려면 공부량이 너무 많아질 수 있습니다. 사이트에는 친절하게 개념 정리해놓은 섹션이 있는데, 그 부분을 먼저 천천히 읽어보는 것을 추천합니다. 2️⃣ 2단계: 공부 및 준비 플래너 따라하기 https://www.techinterviewhandbook.org/coding-interview-study-plan/ 위 링크를 클릭하면 무료 코딩 인터뷰 공부 플래너가 있습니다. 준비 기간을 3개월로 가정했을 때 매주 풀어야 할 문제 목록이 있습니다. 목록에 나와 있는 리트코드 문제를 천천히 풀어보는 것이 좋습니다. 첫째 주부터 넷째 주까지는 알고리즘과 자료 구조의 개념을 다시 복습하는 것인데, 1단계에서 미리 공부했으니까 스킵하고 다섯째 주 플랜부터 시작하는 것을 권유합니다. 🚨학습효과 극대화 하는 법🚨 1️⃣ 쉬운 문제 풀면서 자신감 기르기 Week 5와 Week 6 테이블에 있는 문제는 비교적 간단하고 쉽습니다. 하루 정도 날 잡아서 쉬운 문제를 여러 번 반복해서 풀어보면서 자신감을 길러봅니다. 예를 들어 쉬운 문제를 한 번 풀고 바로 중, 상 난의도의 문제를 풀면 자신감을 바로 잃을 수 있더라고요. 그 대신 쉬운 문제를 여러 번 풀면서 점차 성장하는 자신의 모습을 보며 자신감을 먼저 기르는 것이 도움됩니다. 2️⃣중, 상 난이도 문제의 공통적인 알고리즘 패턴 공부하기 중, 상 난이도 문제는 거의 다음 알고리즘 패턴에 관련된 문제입니다. - Binary Search - Dynamic Programming - Tree Traversal - Graph Traversal - Backtracking 지난번 알려드린 유튜브 채널을 통해 위 개념을 다시 한번 공부하는 것이 좋습니다. 특히 지난번 포스팅에 알려드린 채널의 경우 알고리즘 문제 풀기 패턴을 가르쳐 주는데, 그 패턴을 수도 코드로 적어서 나만의 노트를 만듭니다. 3️⃣ 중, 상 난이도 코딩 문제 1,2 개씩 매일 풀어보기 Week 7부터 Week 12까지 나온 문제들을 솔루션을 보지 않고 혼자서 풀어봅니다. 만약 혼자서 문제 풀기가 불가능한 경우, 지난 번 알려드린 유튜브 채널에서 알려주는 문제 풀이법을 들어봅니다. 전 단계에서 알고리즘 패턴을 공부하는 것이 중요한 이유는 바로 문제를 보자마자 어떤 알고리즘 패턴을 사용해야 하는지 빨리 파악할 수 있습니다. 예를 들면 문제 A를 읽자마자 "이건 Dynamic Programming으로 풀어야겠네"라는 생각이 듭니다. 패턴만 파악하면 이미 문제 반은 풀었다고 생각해도 됩니다. 패턴을 파악해도 코드 작성을 못할 수 있습니다. 이때 미리 적어 놓은 수도 코드를 보며 어떤 방법으로 풀어야 할지 생각해봅니다. 혹시 패턴 파악이 안 되는 분들은 리트코드에 "Related Topics"를 클릭해서 어떤 패턴과 관련된 문제인지 확인해 봅니다. 4️⃣ 중, 상 난이도 코딩 문제 복습 모든 문제를 다 풀어 본 후, 전 단계에서 미리 적어 놓은 수도 코드를 한 번 더 숙지한 다음, 처음부터 끝까지 다시 한번씩 더 풀어보는 것이 도움됩니다. 다시 풀면 반드시 본인이 백퍼센트 이해하지 못한 알고리즘 토픽이 있습니다. 복습하면서 연습이 더 필요한 토픽을 파악합니다. 5️⃣ 비슷한 문제 풀어보기 전 단계에서 파악한 토픽과 관련된 문제를 풀어봅니다. 리트코드 사이트에 가면 토픽 별로 문제를 볼 수 있는데, 필터링을 통해 관련된 문제를 찾아서 풀어봅니다. 6️⃣ 모의 면접 도전해보기 문제 풀기를 다해도 막상 면접에 적합한 문제 풀기가 어려울 수 있습니다. 이때 지난번 알려드린 모의 면접 플랫폼이나 친구를 통해 면접 연습해보는 것을 추천합니다. 7️⃣ 약점을 잘 파악하고 지속적으로 성장하기 예전 포스팅에 공유한 파이널 인터뷰 준비 템플릿이 있습니다. 템플릿에 본인의 약점과 강점을 적을 수 있는 테이블이 있습니다. 모의 면접과 실제 면접을 통해 들은 피드백을 적어봅니다. 특히 본인의 약점을 테이블에 적고 반복적으로 언급되는 부분을 파악하고 고치도록 노력해봅니다. 예를 들어 "Graph Traversal에 대한 이해도가 낮은 것 같다" 및 "Time & space complexity를 파악하지 못하는 것 같다"라는 피드백이 있다면 이 개념을 다시 한번 유튜브나 책을 통해 복습하는 것이 좋습니다. 🪴 함께 읽으면 좋은 글: [다이나믹 프로그래밍(DP)이 어려우신 분들 주목 + (알고리즘 유튜브 채널 추천 및 공부법)] https://careerly.co.kr/comments/60463 [해외 취업 "이것" 하나로 준비하기 - 무료 템플릿] https://careerly.co.kr/comments/59046

Technical Interview Guide for Busy Engineers | Tech Interview Handbook

Techinterviewhandbook

Technical Interview Guide for Busy Engineers | Tech Interview Handbook

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 6월 29일 오전 5:15

 • 

저장 1,143조회 21,316

댓글 2

함께 읽은 게시물

QA. 테스터. SW 테스트 엔지니어, 우리는 무엇으로 불려야 하는가?

소프트웨어 테스팅을 수행하는 포지션에는 각각의 활동과 임무에 따라 여러 단계의 역할로 나눌 수 있습니다. QA, 테스터, 소프트웨어 테스트 엔지니어 등 담당하는 직무에 따라 명칭을 달리 사용하고 있습니다. 그러나 각각의 역할을 수행하는 인원 모두 ‘품질을 검증하고 관리하는 전문가’ 입니다.

... 더 보기

기술 직업 목록: A에서 Z까지

직업 사이트(jobs website)에서 찾아 볼 수 있는 직업들의 간단한 설명에 대해 나와 있는 유용한 기사가 있어 공유합니다.💭 <Silicon Republic(?)의 A-Z 기술 직업 목록> 1. 자동화 엔지니어(Automation engineer) 자동화 엔지니어는 프로세스의 효율성을 높이기 위해 기술 도구를 사용하는데, IT에서 제조에 이르기까지 다양한 산업 분야에서 필요로 합니다. 기술자가 작업 프로세스를 간소화하고 직원의 부담을 덜어주어야 하는 모든 분야에서 자동화 엔지니어는 필요합니다. 2... 더 보기

Silicon Republic's almost A-Z list of tech jobs

Silicon Republic

Silicon Republic's almost A-Z list of tech jobs

요즘 '바이브 코딩'이라는 단어 자체가 유행이긴 하구나 싶습니다. 워낙 가타부타 말이 많아서요. 그래서 '근본'의 말을 들어보고 싶었습니다. 바이브 코딩의 창시자 안드레이 카파시는 역시 단순히 그 자체에 집중하기보다 '소프트웨어의 발전사'라는 큰 그림에서 바이브 코딩이 어떤 의미를 가지고, 어떻게 발전해 나가야 할지 보고 있었어요.

... 더 보기

바이브 코딩 창시자 “유행하는 말들에 현혹되지 마세요.”

바이브 코딩 창시자 “유행하는 말들에 현혹되지 마세요.”

바이브 코딩 창시자 “유행하는 말들에 현혹되지 마세요.”

'보다 나은' QA로 성장하기

Q

... 더 보기

[관리자용] QA 채용을 위한 과제와 필기전형 예시

얼마전 후배로부터 이런 문의를 받았습니다. 

... 더 보기

예전부터 생각해왔던 것이지만, 회사에서 내가 무언가를 이뤘다고 생각하는 것이 얼마나 가소로운 생각이었나 싶다. 팀과 조직이 클 수록 그렇다. 나의 결과는 결국 내가 있는, 나를 둘러싼 환경이 결정하는 것이라서, 잘했다고 설레발도, 못했다고 좌절도 할 필요가 없다는 것을 뒤늗게 깨달았다.