해결된 질문
작성
·
29
0
아직 기초 알고리즘(예: 정렬, 재귀, DFS/BFS) 이해가 완벽하지 않아서요.
강의에서 설명하신 접근법을 연습할 때,
‘어떤 문제부터 푸는 게 효율적인지’ 혹은 ‘매일 어떤 루틴으로 연습하면 좋을지’ 팁을 주실 수 있을까요?
답변 2
1
안녕하세요 혜나님 넘넘 좋은 질문입니다!! 기초 알고리즘이 완벽하지 않다고 느끼는 건 정말 자연스러운 과정입니다. 사실 완벽하게 이해했다고 느끼는 순간이 오기보다는, 문제를 풀면서 점점 익숙해지는 거거든요.
1. 문제 선택 전략 - 이렇게 시작해보세요
강의 자료에서 추천하는 방식을 실전에 맞게 풀어드리면, 일단 개념을 배웠다고 해서 바로 어려운 문제로 가지 마세요. 대신 배운 개념을 직접 활용할 수 있는 단계별 접근을 추천드려요.
먼저 각 개념별로 3-5개씩 쉬운 문제를 푸는 게 좋아요. 예를 들어 재귀를 배웠다면, 팩토리얼 같은 정말 기본적인 문제부터 시작하는 거죠. BFS를 배웠다면 가장 단순한 미로 탐색 문제부터요. 왜냐면 개념이 어떻게 실제로 쓰이는지 체감하는 게 먼저거든요.
그다음엔 같은 개념을 쓰되 살짝 변형된 문제들로 넘어가세요. 이 단계에서 "아, 이런 식으로도 쓰이는구나"라는 경험치가 쌓여요. 강의 자료에서 말한 것처럼, 특정 구현보다는 "이런 류의 조건들에는 어떤 식의 해결법이 쓰이더라"는 감각을 키우는 거죠.
2. 일일 루틴 - 현실적으로 지속 가능하게
매일 루틴은 사람마다 다르지만, 강의에서 강조한 방식을 바탕으로 제안드리면
하루에 1-2시간 정도 시간을 정해두고, 한 문제를 제대로 파고드는 게 여러 문제를 대충 푸는 것보다 낫습니다. 문제를 만났을 때 강의 자료에서 제시한 4단계 접근법을 따라가 보세요.
첫째, 자료구조부터 정하는 거예요. 이 문제의 데이터는 어떤 특성이 있고, 어떤 자료구조로 저장하면 좋을지 생각해보세요. 둘째, 패턴을 파악해요. 예시를 3개 정도 손으로 써보면서 규칙성을 찾아보는 거죠. 셋째, 그 패턴을 코드로 만들어요. 일단 구현하는 게 목표니까 완벽한 코드가 아니어도 괜찮아요. 넷째, 작동하는 코드가 나왔다면 리팩토링하면서 중복을 제거하고 가독성을 높여보세요.
가장 중요한 건 막혔을 때의 대처인데요. 강의 자료에 나온 것처럼 길게는 30분까지 고민해보되, 정말 안 되면 해설을 보는 게 맞아요. 이미 충분히 고민했으니까요. 그런데 해설을 볼 때가 더 중요해요. 내가 막혔던 부분이 어디였는지 기록하고, 해설에서는 어떤 식으로 풀었는지 고민한 다음, 답을 보지 않고 처음부터 다시 작성해보세요. 이 과정을 반복하면 정말 실력이 늘어요.
결국 답은 "질 높은 양치기"예요. 단순히 많이 푸는 게 아니라, 위에서 말한 4단계를 거치면서 숙성된 경험치를 쌓는 거죠.
처음엔 하루에 한 문제도 벅차게 느껴질 수 있어요. 그런데 계속하다 보면 비슷한 패턴의 문제들이 보이기 시작해요. "어? 이거 저번에 풀었던 그 방식이랑 비슷한데?"라는 순간이 오면, 그게 바로 경험치가 쌓인 거에요!! 교재에 있는 코드 구현력을 높이는 체계적인 훈련 방법 문서를 참고해서 복습해보시는 것도 추천드리겠습니다 같이 빠이팅해보시져!!
0
안녕하세요, 인프런 AI 인턴입니다.
이혜나님, 코딩 테스트 준비를 위해 기초 알고리즘을 완벽히 이해하는 것은 굉장히 중요한 부분입니다. 특히 정렬, 재귀, DFS/BFS 같은 기본 알고리즘은 많은 문제의 해법의 기초가 됩니다.
기초부터 순차적으로:
하루에 하나의 알고리즘 주제:
다양한 문제 풀이:
주기적인 복습:
이와 관련된 자세한 설명은 다음 URL에서 확인할 수 있습니다:
- 알고리즘 공부 방법과 루틴 만들기
이 게시물에서는 기초 알고리즘 학습과 관련된 많은 팁을 얻을 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.