강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

김마루님의 프로필 이미지
김마루

작성한 질문수

38군데 합격 비법, 2025 코딩테스트 필수 알고리즘

5-8. 카카오 추가 코딩 테스트 - 1

코테 준비

해결된 질문

작성

·

34

0

안녕하세요!
현재 코딩테스트 준비중인 학생입니다.

 

백준에서 현재 문제 유형 별로(DFS, 백트래킹 등등..) 풀어 보고 있습니다.

문제는 구현같은 유형은 몰라도 풀 수 있지만 DP, N-queen문제는 해당 문제를 접해보지 않고서는 풀기 힘들다고 생각합니다.

하루에 한 유형씩 제대로 이해하기 vs 한 유형만 쭉 풀어서 마스터하기 둘 중에 어떤게 더 좋은 접근법이라고 생각하시나요?

막상 유형별로 풀자니 구현, DFS, BFS, DP유형이 코테에 많이 보이는거같아서 고민입니다.

답변 3

0

딩코딩코님의 프로필 이미지
딩코딩코
지식공유자

김마루님 정말 좋은 고민을 하고 계시네요! 많은 분들이 똑같은 고민을 하는데, 사실 이 질문 자체가 이미 학습에 대해 진지하게 생각하고 계시다는 것 같아 응원합니다!!

 

1. DP와 N-queen이 어려운 건 당연합니다

구현 문제는 몰라도 풀 수 있지만 DP나 N-queen은 접해보지 않으면 어렵다고 느끼신 거, 정말 정상적인 반응이에요. 왜냐면 이 문제들은 특정한 사고방식과 패턴을 알아야 접근 자체가 가능한 유형이거든요.

구현 문제는 문제에서 요구하는 대로 순서대로 코드로 옮기면 되는 경우가 많아요. 그런데 DP는 "이 문제를 작은 문제로 쪼갤 수 있는가", "이전에 계산한 값을 재사용할 수 있는가"라는 관점으로 문제를 바라봐야 하고, N-queen은 백트래킹이라는 완전히 다른 탐색 전략을 알아야 해요. 처음 보면 어떻게 접근해야 할지 막막한 게 당연합니다.

 

2. 두 접근법의 장단점 - 현실적으로 보면

하루에 한 유형씩 제대로 이해하는 방법은 넓고 얕게 배우는 방식이에요. 여러 유형을 빠르게 접해볼 수 있다는 장점이 있지만, 각 유형에 대한 깊이가 부족할 수 있어요. 특히 DP처럼 여러 번 풀어봐야 패턴이 보이는 유형은 하루만 공부하고 넘어가면 나중에 다시 막막해질 가능성이 높아요.

한 유형만 쭉 풀어서 마스터하는 방법은 깊고 좁게 배우는 방식이에요. 해당 유형에 대한 확실한 자신감을 얻을 수 있지만, 실제 코테에서는 여러 유형이 골고루 나오기 때문에 다른 유형을 나중에 봤을 때 시간이 부족할 수 있어요.

그런데 말씀하신 것처럼 "구현, DFS, BFS, DP 유형이 코테에 많이 보인다"는 게 핵심이에요. 이 말은 이 유형들에 더 많은 시간을 투자해야 한다는 뜻이거든요.

 

3. 제안드리는 절충안 - 전략적으로 접근하기

현실적으로 효과적인 방법을 제안드리자면, 유형의 중요도와 난이도를 고려한 전략적 접근을 추천드립니다

출제 빈도가 높은 핵심 유형인 구현, DFS/BFS, DP는 집중적으로 파고드세요. 이 유형들은 3-5일 정도 시간을 투자해서 최소 10-15문제씩은 풀어보는 게 좋아요. 특히 DP는 처음엔 정말 막막하지만, 비슷한 문제를 5개 정도 풀고 나면 "아, 이런 느낌이구나"하는 순간이 와요.

출제 빈도가 중간인 유형들은 기본 개념을 확실히 잡고 대표 문제 3-5개 정도 풀어보세요. 그리디, 이분탐색, 투 포인터 같은 유형들이 여기 해당해요.

출제 빈도가 낮은 특수한 유형들은 나중에 시간 여유가 있을 때 보는 게 현명해요. 일단 코테를 통과하는 게 목표라면, 나올 확률이 높은 것부터 확실하게 잡는 게 전략적으로 맞거든요.

 

4. 구체적인 학습 루틴 제안

이번 주엔 이렇게 시작해보세요. 월요일부터 수요일까지는 DFS/BFS 집중 기간으로 정하고, 하루에 2-3문제씩 푸세요. 강의 자료에서 제시한 4단계 방법을 따라가면서요. 자료구조를 정하고, 패턴을 파악하고, 코드로 구현하고, 리팩토링하는 과정이요.

막히는 문제가 있으면 30분에서 1시간 정도 고민해보고, 정말 안 되면 해설을 보세요. 그런데 여기서 중요한 건, 해설을 본 후에 바로 답안을 베끼는 게 아니라 해설의 접근 방식을 이해한 다음, 화면을 끄고 처음부터 다시 구현해보는 거예요. 이 과정이 정말 중요해요.

목요일부터 금요일은 DP에 집중하되, 같은 방식으로 진행하세요. DP는 처음엔 진짜 어려운데, 피보나치나 계단 오르기 같은 기본 문제부터 시작해서 점진적으로 난이도를 높여가면 돼요.

주말엔 이번 주에 푼 문제들 중에서 특히 어려웠던 문제 2-3개를 다시 풀어보세요. 일주일 전에 풀었던 문제를 다시 풀어보면 "아, 이게 이렇게 풀리는 거였지"하면서 확실히 내 것이 되는 느낌을 받을 거예요.

강의 자료에서 강조했던 것처럼, 결국 답은 "질 높은 양치기"예요. 단순히 문제를 많이 푸는 게 아니라, 각 문제를 풀 때 "이런 류의 조건들에는 어떤 식의 해결법이 쓰이더라"는 경험치를 쌓는 게 중요해요.

교재 내에 첨부되어있는 코드 구현력을 높이는 체계적인 훈련 방법 페이지도 참고해보시면서 한번 연습해보시길 추천드리겠습니다 같이 빠이팅해보시져!!

0

딩코딩코님의 프로필 이미지
딩코딩코
지식공유자

김마루님 정말 좋은 고민을 하고 계시네요! 많은 분들이 똑같은 고민을 하는데, 사실 이 질문 자체가 이미 학습에 대해 진지하게 생각하고 계시다는 것 같아 응원합니다!!

 

1. DP와 N-queen이 어려운 건 당연합니다

구현 문제는 몰라도 풀 수 있지만 DP나 N-queen은 접해보지 않으면 어렵다고 느끼신 거, 정말 정상적인 반응이에요. 왜냐면 이 문제들은 특정한 사고방식과 패턴을 알아야 접근 자체가 가능한 유형이거든요.

구현 문제는 문제에서 요구하는 대로 순서대로 코드로 옮기면 되는 경우가 많아요. 그런데 DP는 "이 문제를 작은 문제로 쪼갤 수 있는가", "이전에 계산한 값을 재사용할 수 있는가"라는 관점으로 문제를 바라봐야 하고, N-queen은 백트래킹이라는 완전히 다른 탐색 전략을 알아야 해요. 처음 보면 어떻게 접근해야 할지 막막한 게 당연합니다.

 

2. 두 접근법의 장단점 - 현실적으로 보면

하루에 한 유형씩 제대로 이해하는 방법은 넓고 얕게 배우는 방식이에요. 여러 유형을 빠르게 접해볼 수 있다는 장점이 있지만, 각 유형에 대한 깊이가 부족할 수 있어요. 특히 DP처럼 여러 번 풀어봐야 패턴이 보이는 유형은 하루만 공부하고 넘어가면 나중에 다시 막막해질 가능성이 높아요.

한 유형만 쭉 풀어서 마스터하는 방법은 깊고 좁게 배우는 방식이에요. 해당 유형에 대한 확실한 자신감을 얻을 수 있지만, 실제 코테에서는 여러 유형이 골고루 나오기 때문에 다른 유형을 나중에 봤을 때 시간이 부족할 수 있어요.

그런데 말씀하신 것처럼 "구현, DFS, BFS, DP 유형이 코테에 많이 보인다"는 게 핵심이에요. 이 말은 이 유형들에 더 많은 시간을 투자해야 한다는 뜻이거든요.

 

3. 제안드리는 절충안 - 전략적으로 접근하기

현실적으로 효과적인 방법을 제안드리자면, 유형의 중요도와 난이도를 고려한 전략적 접근을 추천드립니다

출제 빈도가 높은 핵심 유형인 구현, DFS/BFS, DP는 집중적으로 파고드세요. 이 유형들은 3-5일 정도 시간을 투자해서 최소 10-15문제씩은 풀어보는 게 좋아요. 특히 DP는 처음엔 정말 막막하지만, 비슷한 문제를 5개 정도 풀고 나면 "아, 이런 느낌이구나"하는 순간이 와요.

출제 빈도가 중간인 유형들은 기본 개념을 확실히 잡고 대표 문제 3-5개 정도 풀어보세요. 그리디, 이분탐색, 투 포인터 같은 유형들이 여기 해당해요.

출제 빈도가 낮은 특수한 유형들은 나중에 시간 여유가 있을 때 보는 게 현명해요. 일단 코테를 통과하는 게 목표라면, 나올 확률이 높은 것부터 확실하게 잡는 게 전략적으로 맞거든요.

 

4. 구체적인 학습 루틴 제안

이번 주엔 이렇게 시작해보세요. 월요일부터 수요일까지는 DFS/BFS 집중 기간으로 정하고, 하루에 2-3문제씩 푸세요. 강의 자료에서 제시한 4단계 방법을 따라가면서요. 자료구조를 정하고, 패턴을 파악하고, 코드로 구현하고, 리팩토링하는 과정이요.

막히는 문제가 있으면 30분에서 1시간 정도 고민해보고, 정말 안 되면 해설을 보세요. 그런데 여기서 중요한 건, 해설을 본 후에 바로 답안을 베끼는 게 아니라 해설의 접근 방식을 이해한 다음, 화면을 끄고 처음부터 다시 구현해보는 거예요. 이 과정이 정말 중요해요.

목요일부터 금요일은 DP에 집중하되, 같은 방식으로 진행하세요. DP는 처음엔 진짜 어려운데, 피보나치나 계단 오르기 같은 기본 문제부터 시작해서 점진적으로 난이도를 높여가면 돼요.

주말엔 이번 주에 푼 문제들 중에서 특히 어려웠던 문제 2-3개를 다시 풀어보세요. 일주일 전에 풀었던 문제를 다시 풀어보면 "아, 이게 이렇게 풀리는 거였지"하면서 확실히 내 것이 되는 느낌을 받을 거예요.

결국 답은 "질 높은 양치기"예요. 단순히 문제를 많이 푸는 게 아니라, 각 문제를 풀 때 "이런 류의 조건들에는 어떤 식의 해결법이 쓰이더라"는 경험치를 쌓는 게 중요해요.

교재 내에 첨부되어있는 코드 구현력을 높이는 체계적인 훈련 방법 페이지도 참고해보시면서 한번 연습해보시길 추천드리겠습니다 같이 빠이팅해보시져!!

0

안녕하세요, 인프런 AI 인턴입니다. 김마루님.

코딩 테스트 준비에서 여러 유형의 문제를 다뤄보는 것은 매우 훌륭한 접근 방식입니다. 특히 DFS, BFS, DP 같은 알고리즘 유형은 많은 테스트에서 자주 출제되는 주제입니다. 다음은 두 가지 접근법에 대한 제 의견입니다:

1. 하루에 한 유형씩 학습하기:

이 방법은 다양한 알고리즘 유형에 대한 전반적인 이해도를 높이고, 각 유형의 특징과 적용 방법을 빠르게 파악할 수 있게 합니다. 특히 마루님처럼 아직 특정 유형에 익숙하지 않은 경우, 다양한 유형을 경험해 보는 것이 큰 도움이 될 수 있습니다.

2. 한 유형을 깊이 있게 마스터하기:

많이 나오는 알고리즘 유형(예: DP, DFS, BFS)이라면, 이 방식도 고려해볼 만합니다. 이 경우, 하나의 유형을 깊이 있게 공부하여 이해의 폭을 넓히면서 동시에 다양한 변형 문제를 풀어보는 것이 도움이 됩니다. 이를 통해 하나의 핵심 개념을 완전히 소화하고, 다양한 응용 문제까지 직접 해결할 수 있는 능력이 생깁니다.

양쪽 방법 모두 각각의 장점이 있기 때문에, 다음과 같은 방식을 추천드립니다:

추천하는 방법

  • 기본적인 이해: 처음에는 하루에 한 유형씩 공부하면서 전반적인 개념을 익히고, 다양한 유형의 문제를 조금씩 접해보세요.
  • 심화 학습: 이후 자주 출제되는 유형(DFS, BFS, DP 등)에 대해 깊이 있는 학습을 하며 여러 문제를 풀어보세요.

이 과정에서 실력을 지속적으로 확인하고 부족한 부분을 보완하며 나아가시기 바랍니다. 또한 백준과 같은 플랫폼을 이용해 꾸준히 연습하면서 실전 감각을 키우세요. 아래 링크들을 함께 참고하시면 도움이 되실 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김마루님의 프로필 이미지
김마루

작성한 질문수

질문하기