인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

말랑말랑한 캥거루님의 프로필 이미지

작성한 질문수

세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)

재귀함수 이해하기 [문제풀이] : BOJ 4779

제가 공부하는 방법이 괜찮은지 궁금합니다

해결된 질문

작성

·

119

1

안녕하세요, 강의를 듣고 계신 여러분!

여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다.

 

1. chatGPT를 이용해보기

  • 단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다!

     

 

2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요!

  • 강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지를 명확히 제시해 주시면 답변에 도움이 됩니다!

  • 자신은 어떻게 이해했는지 또한 적어주면 좋습니다!

 

ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요?

 

  • 어느 파트

    • 섹션 2 재귀함수 이해하기 문제 풀이 백준 4779 칸토어 집합

  • 자신은 어떻게 이해했는지

    • 먼저 칸토어 집합의 원리? 구성을 이해해 보려함

    • 이후 이것을 수식으로 바꿔 보고 그것을 재귀함수 형태로 바꿔 보려 함

    • 강사님께서 풀어 보고 오라고 하셨는데, 일단 시도는 하였으나 설계 자체가 잘 되지 않고, 챗 gpt에서 제 코드에서 설계나 풀이의 문제가 뭐냐고 물어봤는데 아예 접근부터 잘못되었다고 생각됨

  • 어떤 부분이 궁금한지

     

    • 원래 자바로 공부하다가 파이썬이 코테에 유리하다는 것을 느끼고 바꿨더니 문법 문제가 생김

    • 문제를 풀 때 그때그때 문법 검색해 보고 블로그에 정리하는 식으로 공부할지 or 그냥 파이썬 문법 강의까지만 듣고 올지

    • 실버 문제가 아직 설계부터 어렵고, 수학 문제가 나오면 어버버거리는데, 이걸 문제를 다 못 풀어 봤어도 혼자 30분 정도 접근해 보고, gpt에 물어봐서 나의 문제점을 이해하고 문제 풀이 강의를 듣는 식으로 해도 되는 건지?

    • 브론즈 같은 경우엔 일단 풀이가 깔끔하지 않더라도, 문제가 풀려서 풀고 강의를 들으면 됐었는데, 실버 문제로 오니까 아예 설계부터 못하는 것 같아서 공부를 어떻게 해야 하는 건지 모르겠음

     

 

답변 2

0

알리 Ally님의 프로필 이미지
알리 Ally
지식공유자

안녕하세요, 말랑말랑한 캥거루님!

 

Q1. 원래 자바로 공부하다가 파이썬이 코테에 유리하다는 것을 느끼고 바꿨더니 문법 문제가 생김

A) 파이썬 문법 같은 경우는 강의와 강의 자료 중간중간에 문법 팁이나 원리에 대해 설명하고 있습니다. 그럼에도, 모르는 부분이 자주 나온다면 간단한 파이썬 문법 강의(링크) 등을 듣고 강의를 수강하면 도움이 될 것 같습니다. 추가로, GPT를 이용하여 그때그때 모르는 부분을 빠르게 찾는 것도 도움이 될 것 같습니다.

 

Q2. 문제를 풀 때 그때그때 문법 검색해 보고 블로그에 정리하는 식으로 공부할지 or 그냥 파이썬 문법 강의까지만 듣고 올지

A) Q1과 비슷한 맥락으로, 문법은 기본적인 강의(링크) 등을 듣고 강의를 들으시면 도움이 될 것 같습니다. 추가로, 문법을 블로그나 개인 공간에 정리한다면 사용법 정도만 매우 간단하게 정리하는 것을 추천드립니다. 문법은 암기하는 것보다는 까먹었을 때마다 찾아보며 자연스럽게 익숙해지는 것이 좋기 때문입니다. 사실, 아예 정리를 하지 않고, 문법이나 사용법을 까먹었을 때마다 GPT에게 물어보며 반복하여 상기하는 정도만 해도 괜찮다고 생각이 듭니다.

 

Q3. 실버 문제가 아직 설계부터 어렵고, 수학 문제가 나오면 어버버거리는데, 이걸 문제를 다 못 풀어 봤어도 혼자 30분 정도 접근해 보고, gpt에 물어봐서 나의 문제점을 이해하고 문제 풀이 강의를 듣는 식으로 해도 되는 건지?

A) 만약, 문제를 풀 때 못 푼 이유가 몰랐던 개념이나 테크닉 때문인 경우가 잦다면, 이는 관련된 개념이나 테크닉 등 경험이 부족하여 그럴 확률이 높습니다. 즉, 정답과 해설을 보며 개념과 테크닉 등을 빠르게 습득하여 경험치를 늘리는 것이 도움이 됩니다. 따라서, 문제를 고민하는 시간은 최대 30분 정도로 잡고 문제의 정답 풀이(또는 해설 강의)를 보며 경험치를 빠르게 늘리며 공부하는 것이 효율적일 것입니다.

만약, 못 푼 문제의 해설을 봤는데 알았던 알고리즘이라면, 이는 문제해결능력(문제를 올바르게 접근하는 능력)이 부족하여 그럴 확률이 높습니다. 따라서, 이러한 경우는 문제를 깊게 고민해 보며 문제해결능력을 늘리는 것이 도움이 되므로 최대 1시간 정도 고민하면 여러 접근을 해보는 좋을 것 같습니다.

사실, 문제를 고민하는 시간 자체도 중요하지만, 밀도 있게 고민하는 것이 더욱 중요합니다. 즉, 10분을 고민하더라도 문제를 어떻게 풀 수 있을지, 시간 복잡도를 줄일 방법은 없는지, 내 풀이 논리에 오류는 없는지, 해당 문제가 어떤 알고리즘으로 풀리는 구조인지 등을 다각적으로 생각하며 풀어야 합니다.

알고리즘 문제를 잘 푸는 사람들은 단번에 정답을 떠올리는 것이 아니라, 짧은 시간 안에 다양한 사고 과정을 거쳐 최적의 풀이를 도출합니다. 따라서, 위와 같은 사고 과정을 반복적으로 훈련하는 것이 중요합니다. 본 강의의 해설 강의에서는 문제 접근부터 다양한 풀이를 떠올리는 과정을 잘 다루고 있으니, 위와 같이 다각적으로 접근한 후에 해설 강의를 보며 나의 사고 과정을 계속 고쳐 나가면 좋을 것 같습니다.

 

추가적으로, GPT를 사용하여 여러 질문을 하며 문제점을 파악하는 것은 좋은 것 같습니다. 저 또한 공부를 할 때 제가 이해한 것이 맞는지 GPT를 통해 물어보고, 반론해 가며 공부하고 있으니, 이와 같이 활용하면 공부를 할 때 더 깊은 이해를 가져갈 수 있을 것 같습니다.

 

수학 문제가 나올 때 어려운 이유가, 몰랐던 수학 개념이 나와서 그러는지, 아니면 수학적인 사고력이 부족한 것인지를 파악할 필요가 있습니다. 만약, 몰랐던 수학 개념이 나와서 그렇다면, 수학적인 개념을 공부할 필요가 있으며, 본 강의의 코딩테스트에 필요한 수학 총정리에 나오는 내용을 충분히 공부하는 것을 추천드립니다. 만약, 수학적인 개념은 알고 있으나 사고력이 부족해서 못 풀었다면, 문제해결능력을 늘리면 자연스럽게 해결될 문제라고 생각합니다. 문제해결능력을 늘리는 방법은 위에서 설명한 것처럼 밀도 있게 고민하는 시간을 가지며 공부하면 자연스럽게 늘 거라고 생각합니다.

 

Q4. 브론즈 같은 경우엔 일단 풀이가 깔끔하지 않더라도, 문제가 풀려서 풀고 강의를 들으면 됐었는데, 실버 문제로 오니까 아예 설계부터 못하는 것 같아서 공부를 어떻게 해야 하는 건지 모르겠음

A) 어떻게 공부해야 할지는 Q3에 대한 답변에서 다룬 거 같으니, 해당 내용을 참고해 주시면 감사하겠습니다! 추가로, 문제를 풀 때 어떻게 접근해야 하는지는 섹션7의 문제를 푸는 사고과정 ('실전문제 풀이 파트2' 소개) 강의에 자세히 나와 있으니 참고하면 좋을 것 같습니다. (해당 강의는 앞 강의의 내용들이 선행되었다는 가정하에 제작한 영상이어서 모르는 개념이나 내용이 나올 수 있으니, 흐름 정도만 참고하면 좋을 것 같습니다.)

 

추가로, 강의는 한 번만 듣지 말고 2, 3회독 하는 것을 추천드립니다!

 


질문에 대해 만족스러운 답변이 되었기를 바랍니다!

추가로 궁금하신 점이나 더 자세한 설명이 필요하시다면 언제든지 말씀해 주세요. 😄

5점 수강평을 남겨주시면 향후 더 나은 강의를 만드는 데 큰 도움이 됩니다. 🌟

말랑말랑한 캥거루님의 프로필 이미지

감사합니다 참고해서 공부하겠습니다!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 말랑말랑한 캥거루님의 질문을 확인했습니다. 알고리즘 및 자료구조를 배우면서 특히 파이썬으로 전환하시고 나서 학습 방법에 대한 고민이 많으신 것 같습니다. 학습 순서와 방법론에 대해 많은 수강생들이 같은 고민을 하고 있으실 것 같습니다. 이와 관련하여 도움이 될 수 있는 기존 질문 및 답변을 찾아 보겠습니다.

관련 질문/답변 링크:

  1. “파이썬 문법 공부 방법”

    • 이 질문에서는 파이썬 문법을 학습하는 효율적인 방법으로, 기초 강의를 통해 문법을 빠르게 습득한 후, 직접 프로젝트를 통해 실습하면서 익히는 것이 좋다고 조언합니다. 기초 강의를 듣고 실전에서 적용해보는 것을 추천하고 있습니다.
  2. “알고리즘 학습과 문제 해결 접근법”

    • 알고리즘 문제 해결에 대한 접근법과 학습 방법론에 대한 기존 질문/답변입니다. 문제를 단계별로 접근하고, 예상 결과와 비교하며 학습하는 과정을 설명합니다. 특히, 구체적 설계 방법론에 대한 조언을 참고하면 좋겠습니다.

풍부한 설명 추가:

  1. 파이썬 문법 익히기:

    • 기초 강의 수강: 파이썬 문법 강의를 통해 기초를 빠르게 습득하고, 그 후에 문제를 풀면서 겪는 문법적인 어려움을 실습과 검색을 통해 해결하는 것이 효과적입니다. 실전에서 필요한 부분을 바로 적용하며 문법을 체화하는 방법도 많이 사용됩니다.
  2. 알고리즘 문제 해결 접근법:

    • 설계 연습: 우선 문제의 요구사항을 정확히 이해하고, 문제를 작게 나누어 설계하는 연습을 꾸준히 하세요.
    • 단계별 접근: 문제를 풀 때는 핵심 로직을 잡기 전에 모든 변수와 흐름을 종이에 다이어그램 또는 표로 그려 보는 것도 좋습니다.
    • 효율적인 도움 받기: 흥미로운 문제를 30분 정도 생각해 본 후에, 온라인 자료나 강의 영상을 통해 다시 설명을 듣고 자신이 놓친 부분이나 새로운 접근법을 배우는 것은 매우 도움이 됩니다.
  3. 학습 루틴 개선:

    • 반복과 실습: 알고리즘 문제를 풀 때는 문제를 푸는 속도보다 풀어가는 과정에서 얻는 사고와 접근법을 체득하는 것이 중요합니다. 특히, 직접 시도하고 검증을 반복하는 것이 큰 도움이 됩니다.
    • 고난이도 문제 접근법: 실버나 골드 난이도의 문제에서도 실패나 어려움을 겪는 것은 자연스러운 과정입니다. 실패한 이유를 기록하고, 다음 시도에서 같은 실수를 줄이기 위한 전략을 세워보세요.

파이썬으로의 전환과 실버 단계 문제의 난이도를 경험하면서 느끼신 어려움은 많은 사람들이 겪는 부분입니다. 이 과정에서 꾸준한 연습과 의도적인 학습 방법을 통해 극복할 수 있습니다.

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