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

한유태님의 프로필 이미지
한유태

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

7-R

7-R 아이디어 질문있습니다 :)

해결된 질문

작성

·

21

0

안녕하세요 선생님 🙂

 

문제풀이에 궁금한 것이 있습니다.

 

문제를 보자마자 먼저 투포인터를 떠올렸구요, 시간복잡도가 굉장히 크기 때문에 이분탐색을 생각했습니다. 하지만, 이분탐색을 사용하면 배열의 value 또는 인덱스 중 어떤 것도 탐색할 수 없기 때문에 올바른 방법이 아니라고 생각했습니다.

아이디어가 너무 안떠올라서 정답풀이를 보니까 DP더라구요.. 머리가 너무 아픕니다 ㅠㅠ

 

문제를 풀이하는 방법은 다음과 같습니다.

  1. 어떻게 풀어야겠다는 아이디어

  2. 아이디어를 어떤 알고리즘을 사용해서 어떻게 풀이해야겠다는 설계

  3. 구현

     

그동안 문제를 풀면서 느낀 점은, 아이디어와 설계만 제대로 되어있다면 구현은 문제가 될 것이 없다는 것이었습니다. 반대로, 아이디어와 설계가 제대로 되어있지 않으면 구현은 해봤자 의미가 없었습니다.

 

이렇게 아이디어와 설계가 안떠오르는 문제들은 어떻게 극복해야할까요? 선생님의 조언이 절실하게 필요합니다..

답변 2

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 유태님ㅎㅎ

이분탐색을 사용하면 배열의 value 또는 인덱스 중 어떤 것도 탐색할 수 없기 때문에 올바른 방법이 아니라고 생각했습니다.

-> 아니요. 이분탐색의 조건 부터 생각해야 합니다.

이분탐색을 하려면 정렬되어있는 배열이 필요합니다. 이문제의 경우

7
1 2 1 3 1 2 1

이 배열을 정렬해도 될까요? 안됩니다. 이 배열 자체로 펠린드롬을 찾아야 합니다.

그래서 다른 방법을 생각해야 합니다.

 

  1. 어떻게 풀어야겠다는 아이디어

  2. 아이디어를 어떤 알고리즘을 사용해서 어떻게 풀이해야겠다는 설계

  3. 구현

     

-> 플로우는 좋습니다.

 

이렇게 아이디어와 설계가 안떠오르는 문제들은 어떻게 극복해야할까요? 선생님의 조언이 절실하게 필요합니다..

-> 저도 처음에는 안떠오르죠 ㅎㅎ 도식화하고 그림을 그리고 손코딩하면서 생각하는 훈련을 하셔야 합니다. 바로 코딩이 아니라 무조건 손코딩 하시고 들어가야 합니다.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


0

안녕하세요, 인프런 AI 인턴입니다. 한유태님.

아이디어와 설계 부분에서 막히는 것은 알고리즘 문제 풀이에서 흔히 겪는 어려움 중 하나입니다. 특히, 빠른 시간 내에 문제의 패턴을 인식하고 적절한 알고리즘을 선택하는 것은 경험과 연습이 중요한 부분입니다. 여기 몇 가지 조언을 드리겠습니다:

  1. 문제 패턴 인식: 문제를 푸는 과정에서 가장 중요한 것은 문제 유형을 인식하는 것입니다. 이를 위해 다양한 문제를 풀어보면서 패턴을 익히는 것이 필요합니다. 배경지식이 쌓이면 새로운 문제를 접했을 때 유사한 문제를 적용할 수 있는 지식이 떠오를 것입니다.

  2. 알고리즘 노트 작성: 각 알고리즘별 특성과 활용 가능한 조건을 정리한 노트를 작성해보세요. 예를 들어, 어떤 조건에서 DP가 유효한지, 투포인터는 언제 사용하는 것이 좋은지 등을 정리합니다. 이는 문제를 접근할 때 큰 도움이 됩니다.

  3. 풀이 후 복습: 한 문제를 푼 뒤 그 문제의 풀이 과정을 되짚어 봅니다. 혹시 다른 접근법이 있었는지, 현재 접근법의 단점은 무엇인지 고민합니다. 이후 복습을 통해 문제를 다른 시각으로 접근해 보세요.

  4. 구현 연습: 아이디어와 설계가 정착된 후 이를 코드로 구현하는 것도 계속 연습해야 합니다. 구현이 수월하게 될수록 설계와 아이디어에 더 집중할 수 있게 됩니다.

질문과 유사한 기존 답변을 찾아보았습니다. 관련 링크를 통해 보다 구체적인 도움을 받을 수 있을 것입니다:
- 7-R 질문있습니다 :) - 이 질문은 DP를 활용한 문제 접근 방식에 대해 설명합니다. 아이디어의 전환에 대해 힌트를 얻을 수 있을 것입니다.
- 문제 접근 방식 관련 - 이 질문에서는 문제 접근 방법에 대해 다양한 관점을 제시하고 있습니다.

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

한유태님의 프로필 이미지
한유태

작성한 질문수

질문하기