강사님 안녕하세요.
매번 알고리즘을 미루다가 이제 더이상 미룰 수 없어 빠듯하게 학습을 진행하고 있습니다.
강의 관련된 내용은 아니라 질문 드려도 될지 잘 모르겠네요. 문제가 된다면 삭제하겠습니다.
1) 뒤집어 질 경우
2) 첫 번째 원소가 0인지 1인지
이런 문제를 해결할 수 있는 방법?을 떠올리기 까지 시간이 너무 오래 걸려요.
(못 떠올리긴 했지만) 떠올리기 까지도 시간이 너무 오래걸려서 결국 정답 코드를 확인하곤 합니다.
과연 학습을 하여도 이런 방법을 떠올릴 수 있을지 걱정이 앞서네요.
제가 제대로 된 학습방법을 가지고 학습을 하고 있는걸까요?
저는 Java로 코딩 테스트를 준비하고 있습니다.
강의 자료(노션)에 있는 원 문제 링크를 들어가 혼자 문제를 먼저 풀어보곤 해요.
그러고 이해가 안되는 건 해설 영상을 보거나, 개념이나 이론 부분은 영상을 봅니다.
제가 풀 수 있는 문제는 해설 영상을 건너뛰고 있습니다.
혼자 문제를 풀 때는, 원 문제 링크를 들어가 문제를 손으로 풀어보고 이해를 합니다.
문제를 보고 위에 작성한 1) 뒤집어 질 경우와 같은 해결할 수 있는 방법을 두서없이 주석에 막 적습니다.
그러고 이 방법이 맞겠는데? 싶으면 주석으로 수도코드를 작성합니다.
그러고 코드를 작성하고, 입력과 출력을 비교하며 제출을 합니다.
모든 공부법에 정답은 없겠지만, 제 학습법이 효율적인 학습법인지 + 저에게 맞는 학습법인지 모르겠습니다.
해결할 수 있는 방법을 떠올리는게 너무 힘들어요. 컴퓨터식 머리(?)가 부족한걸까요.
해결법을 떠올리는게 힘드네요. 잘 떠올리고 싶어요.
긴 글 읽어주셔서 감사합니다.
문제가 되면 삭제하겠습니다.
안녕하세요 김앙리님! 질문주셔서 감사합니다!
질문을 보니 "아이디어를 떠올리는 과정이 너무 오래 걸린다"는 고민이 가장 큰 것 같아요. 하지만 걱정하지 마세요. 이건 자연스러운 과정입니다! 초반에는 누구나 어려움을 겪고, 학습을 하면서 점점 빨라지고 유연하게 문제를 바라볼 수 있게 됩니다.
알고리즘 문제를 푸는 과정은 "패턴을 익히고 적용하는 과정"입니다. 우리가 처음에는 자동차 운전을 배울 때 신호등을 보고 액셀, 브레이크를 따로따로 의식해야 하지만, 시간이 지나면 몸이 알아서 반응하는 것처럼요. 즉, 문제 해결 속도가 느린 이유는 아직 여러 문제를 접하며 패턴을 익히는 과정에 있기 때문입니다.
특히 "뒤집어질 경우" 나 "첫 번째 원소가 0인지 1인지" 같은 조건을 인지하는 데 시간이 걸리는 건, 이런 조건이 등장하는 문제를 많이 접해보지 않았기 떄문입니다. 아마 다시 비슷한 문제가 나오시면 금방 캐치하실 수 있을 거에요!
이런 문제들을 보면서 해결 방법을 쉽게 떠올리려면, 문제를 읽고 나서 "이 문제에서 중요한 조건이 뭘까?"를 먼저 정리하는 연습을 해보세요.
"뒤집어질 경우" → 이전에 나온 '뒤집기' 관련 문제들과 비슷한가?
"첫 번째 원소가 0인지 1인지" → 초기 상태가 중요하네! 이전에 본 비슷한 문제 있나?
이렇게 조건을 정리하는 습관을 들이면, 나중에는 문제를 읽자마자 패턴이 떠오를 거예요.
처음보는 문제의 유형을 곧바로 떠올리는 사람은 정말 극소수입니다!
따라서 스트레스 받지 마세요 ㅎㅎ
지금 학습법 자체는 아주 좋습니다!! 특히 노션 자료를 활용하고, 손으로 먼저 풀어보는 과정, 주석으로 정리하는 습관은 정말 훌륭합니다.
모든 알고리즘 고수들도 처음에는 똑같은 고민을 했습니다. 처음에는 시간이 걸려도, 연습을 반복하다 보면 자연스럽게 떠오르는 순간이 옵니다. 그러니 너무 조급하게 생각하지 말고, 지금처럼 꾸준히 해나가시길 응원하고 있겠습니다!!
빠이팅이십니다!!
답글