강의

멘토링

커뮤니티

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

zzzb1님의 프로필 이미지
zzzb1

작성한 질문수

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

2-10. 2주차 끝 & 숙제 설명

2-10 더하거나 빼거나 관련 질문입니다

해결된 질문

작성

·

21

0

1. 현재 학습 진도

  • 몇 챕터/몇 강을 수강 중이신가요?

    • 2-10

  • 어떤 알고리즘을 학습하고 계신가요?

    • 재귀

  • 여기까지 이해하신 내용은 무엇인가요?

    • 강의 내용과 코드는 전부 이해했습니다.

 

2. 어려움을 겪는 부분

  • 어느 부분에서 막히셨나요?

    • 아이디어 발상 과정

  • 코드의 어떤 로직이 이해가 안 되시나요?

  • 어떤 개념이 헷갈리시나요?

     

 

처음에 문제를 풀려고 시도했을 때, 아이디어를 이것저것 떠올렸고 2주차때 배운 내용에 재귀가 있으니 뭔가 재귀로 풀면 가능하지 않을까? 라는 것까지 도달했습니다.

그러나 30분 이상 고민하다가 결국 도저히 모르겠어서 코드를 아예 짜지 못한 상태로 정답풀이 강의를 봤습니다..강의는 자세히 알려주셔서 다 이해를 했지만 이러한 문제를 마주쳤을 때 풀이법을 떠올리는 게 너무 어려운데 어떻게 하는게 좋을까요?

답변 2

1

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

zzzb1님 정말 좋은 질문이에요! 사실 이 부분에서 막히는 게 완전 정상입니다. 오히려 "재귀로 풀면 되지 않을까?"까지 떠올리신 것 자체가 이미 잘 따라오고 계신 거예요.

"아이디어가 안 떠오른다"는 고민은 알고리즘 초심자분들 거의 100%가 겪는 과정이에요. 강의를 보고 이해하는 것과 스스로 아이디어를 떠올리는 건 완전히 다른 근육을 사용하는 일이거든요.

교재에서도 강조하는 부분인데, 이 문제의 핵심은 "규칙을 찾으려 하지 말고, 모든 경우의 수를 직접 손으로 써보는 것"을 추천드리고 있습니다

예를 들어 [2, 3, 1]로 0을 만드는 경우를 직접 나열해보면

+2 +3 +1 = 6
+2 +3 -1 = 4
+2 -3 +1 = 0  ← 타겟!
+2 -3 -1 = -2
-2 +3 +1 = 2
-2 +3 -1 = 0  ← 타겟!
-2 -3 +1 = -4
-2 -3 -1 = -6

이렇게 직접 써보면 "아, 각 숫자마다 +를 붙이냐 -를 붙이냐 두 갈래로 갈라지는구나"라는 패턴이 보이기 시작합니다. 이게 바로 재귀의 분기 구조입니다.

 

아이디어가 안 떠오를 때 시도해볼 수 있는 체크리스트가 있어요

첫째, 문제에서 주어진 예시가 복잡하면 더 단순한 예시를 직접 만들어보세요. [1,1,1,1,1]은 헷갈리니까 [2,3,1]처럼 숫자가 다른 짧은 배열로 바꿔서 손으로 직접 모든 경우를 나열해보는 거예요.

둘째, "모든 경우의 수를 봐야 하나?"라는 질문을 던져보세요. 수학적 공식이나 규칙으로 바로 답이 안 나오는 문제라면, 완전탐색(모든 경우 다 해보기)을 의심해볼 수 있어요.

셋째, 완전탐색이라면 "어떤 선택지가 반복되는가?"를 찾아보세요. 이 문제에서는 "각 숫자를 더할지 뺄지"가 반복되는 선택이죠. 이런 반복 구조가 보이면 재귀로 표현할 수 있습니다.

처음 몇 문제는 아이디어를 못 떠올리고 답을 보는 게 당연합니다. 중요한 건 답을 본 후에 "아, 이런 유형의 문제는 이렇게 접근하는구나"를 체화하는 것을 추천드립니다!!

지금 하신 것처럼 30분 고민하고 → 답 보고 → 이해하고 → "왜 못 떠올렸지?" 복기하는 이 과정 자체가 가장 이상적인 학습 흐름입니다. 비슷한 유형을 3~4문제 정도 더 풀어보시면 "아, 이건 각 원소마다 선택지가 있으니까 재귀구나"라는 감이 생기실 거예요.

넘넘 좋은 고민의 시작점입니다 앞으로도 화이팅입니다!

0

안녕하세요, 인프런 AI 인턴입니다. zzzb1님!

코딩 문제를 해결하는 데 있어, 초기에 아이디어를 떠올리는 과정은 많은 학습자들이 겪는 어려움 중 하나입니다. 특히 재귀적 접근 방식은 처음에는 직관적이지 않을 수 있습니다. 몇 가지 팁을 드리자면:

  1. 문제를 작게 나눠보세요: 문제를 작은 부분으로 나누고, 각 부분을 어떻게 해결할 수 있을지 고민해보세요. “더하거나 빼거나”와 같은 문제는 부분 문제를 잘 정의하는 것이 중요합니다.

  2. 재귀적 사고 훈련: 재귀는 문제를 작게 나누는 것과 자연스럽게 연결됩니다. 기본 문제를 해결하고, 그 위로 문제를 확장해가는 방식에 익숙해지도록 훈련해보세요.

  3. 다양한 예제 풀어보기: 비슷한 문제들을 많이 풀면 아이디어 발상이 쉬워집니다. 꼭 같은 문제 타입이 아니더라도, 다른 재귀적 문제를 풀어보는 것 역시 큰 도움이 될 수 있습니다.

  4. 비슷한 질문과 답변 참고하기: 비슷한 문제나 질문을 인터넷에서 찾아보고, 다른 사람들이 어떻게 접근했는지 참고하는 것도 좋은 학습 방법입니다.

관련하여 참고할 수 있는 링크를 아래에 소개해드립니다:

이 질문에서는 병합 정렬과 재귀적 접근법에 대한 자세한 설명이 포함되어 있어, 재귀적 사고를 이해하는 데 도움이 될 수 있습니다.

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

zzzb1님의 프로필 이미지
zzzb1

작성한 질문수

질문하기