-
Notifications
You must be signed in to change notification settings - Fork 116
문제 풀이 가이드
Blind 75는 리트코드에서 19개의 Easy 문제, 49문개의 Medium 문제, 7개의 Hard 문제로 이루어져 있으며, 우리 스터디에서는 총 15주간 매주 5문제 씩 풀어 Blind 75 문제를 모두 푸는 것을 목표로 하고 있습니다. 주말을 빼면 하루에 한 문제씩 풀어야 하는 스케줄인데요. 바쁜 직장인이시라면 문제 풀이를 위해서 퇴근 후 따로 시간을 내시는 게 쉽지가 않을 것입니다. 그래도 열심히 하는 다른 스터디 멤버들을 보시면서 동기부여를 받으실 수 있으실 것입니다.
Blind 75의 모든 문제를 푸시는데 너무 연연하시면 금방 좌절하시거나 흥미를 잃어버릴 수 있으시니, 매주 꾸준히 알고리즘 문제를 푸는데 더 큰 의의를 두시라고 말씀드리고 싶습니다. 너무 의욕이 앞서 무리한 목표를 잡으시지 마시고 자신의 수준이나 일정에 맞게 매주 푸는 문제의 개수를 자율적으로 조정하시기 바랍니다. 5문제를 무리하게 푸시려다가 제풀에 지쳐서 중도 포기하시는 것보다 3문제로 목표를 줄이는 편이 더 나은 전략이 될 수 있습니다. 아무래도 문제에 대해서 스스로 고민하는 시간을 충분히 갖지 못하고 계속해서 정답을 보고, 마감에 쫓겨 답안을 제출하게 되면 스스로 풀이 과정에 대한 만족감이 떨어지게 됩니다.
Note
Blind 75 자체에 대해서 좀 더 알고 싶으시다면 관련 글을 읽어보세요
특히 알고리즘 입문자 경우 매주 5문제를 스스로 푸시는 것이 시간을 많이 할애하시더라도 벅차게 느껴질 수도 있는데요. 처음 접하는 유형의 문제는 너무 스스로 풀어야 한다는 강박을 가지시기 보다는 적당히 정답을 보면서 연습하는 것이 오히려 더 좋은 전략이 될 수 있습니다. 어차피 최종 목표가 코딩 테스트를 볼 때 문제를 혼자서 해결하는 것이지 연습 과정에서도 반드시 그래야하는 것은 아니니까요.
알고리즘 문제에 대한 어느 정도 경험이 있으시다면 기억에 오래 남을 수 있도록 가급적 문제를 스스로 풀어보시고 추천드리고 싶습니다. 우리 뇌는 쉽게 얻은 지식은 쉽게 잊는다고 합니다. 한번 치열하게 고민해보신 문제는 설사 스스로 해결을 못하셨더라도 여러분의 뇌는 그 고통을 오래동안 기억할 것입니다. 그리고 같은 문제를 다양한 방법으로 접근해보시는 것도 근본적인 문제 해결 능력을 키우시는데 도움이 됩니다. Blind 75 문제는 너무 많이 알려져서 오히려 많은 회사들이 변별력을 키우기 위해서 동일한 문제의 제출을 피하기도 합니다. 결국은 어떤 문제를 만나시더라도 빠르게 유형을 파악하고 적합한 알고리즘과 자료구조를 적용하는 능력을 기르셔야 어느 회사에 지원하시더라도 좋은 결과를 얻으실 수 있으실 것입니다.
Note
효과적인 코딩 테스트 연습 방법에 대해서는 관련 글을 읽어보세요.
우리가 함께 해결해야하는 Blind 75 문제의 전체 목록과 주차 별 풀이 일정은 아래 보드에 정리해 두었으니 참고 바라겠습니다. 주별로 풀이 난이도가 비슷하게 설정이 되어 있으며 같은 유형의 문제가 한 주에 너무 몰리지 않도록 골고루 분산하였습니다.
👉 https://github.com/orgs/DaleStudy/projects/6
위 프로젝트에서 75개의 이슈로 구성되어 있으면, 각 이슈는 문제에 대한 LeetCode 문제 링크, Alogdale 해설 링크, 문제 폴더 위치 링크가 들어있습니다.
그룹 스터디의 효과를 극대화 하시려면 아래 과정을 충실히 따라 보시기를 추천드립니다.
- 문제를 스스로 해결하기 위해서 혼자 고민하는 최대 시간을 정합니다. 30분에서 1시간 정도가 적당합니다.
- 도움요청 디스커션에 어느 부분에서 막히시는지 공유하고 코치에게 힌트와 가이드를 구합니다.
- 알고달레의 풀이나 문제 폴더에 있는 이전 기수 분들의 답안 코드를 참고해서 문제를 해결합니다.
- 답안 코드의 복잡도를 시간과 공간 측면에서 분석 결과를 주석으로 포함시킵니다.
- 답안 코드를 PR로 제출하고 코치나 멤버들에게 받은 피드백을 반영합니다.
- 화상 모임에 참여하셔서 푸신 문제에 대해서 적극적으로 토론하고 복습합니다.
Note
알고리즘의 성능을 객관적으로 표현하기 위해서 Big O에 대해서는 관련 글을 읽어보세요.
알고달레에서는 보통 한 문제에 대해서 여러가지 접근법과 답안 코드를 제공합니다. 보통 첫 번째 풀이는 생각해내기 쉽지만 비효율적인 알고리즘이고, 뒤로 갈 수록 점점 알고리즘이 최적화되어 성능이 좋아지지만 풀이가 복잡해집니다. 문제를 처음 풀어보시는 거라면 반드시 최적의 답안을 제출하시려고 하실 필요가 전혀 없습니다. 알고리즘을 충분히 이해하지 못하시고 작성한 코드는 금방 잊어버리게 되기 때문에, 차라리 성능이 좀 떨어지더라도 쉬운 알고리즘을 직접 구현하시는 편이 낫습니다. 어차피 해외 취업을 하시려면 여러 번 연습을 하셔야하는 문제라고 생각하시면 마음이 편하실 것 같습니다.
단순히 정답 코드를 외우는 전략은 코딩 테스트가 얼마 남지 않았을 때는 단기적으로 효과를 볼 수 있지만, 장기적으로는 여러분의 문제 해결 능력을 키우는데 큰 도움이 되지 않는다는 것을 명심하셨으면 좋겠습니다.