seoksu
314
2021-03-17 11:04:01
8
1164

코딩테스트 공부 어떻게 해야 하나요..


안녕하세요. 현재 지금 4학년이라 코딩테스트 공부를 해보려고 하는데요

그전에 한번도 해보지 않아서 처음부터 시작하려고합니다.

일주일에 3~4문제씩 백준과 프로그래머스에서 생각할 시간을 잡고 그래도 못풀겠으면 정답을 보는데

아직도 초반인데 모르는게 너무 많고 매 문제마다 답을 보는 것같아서..

이게 공부를 잘 하고있는건지도 모르겠습니다.

코딩테스트 공부를 어떤 방법으로 하는게 좋을까요?

0
  • 댓글 8

  • ercnam
    6k
    2021-03-17 11:13:42

    어떻게든 해결해볼려고 해야죠. 설마 잠깐 생각하고 모르겠다고 답 보시는건 아니겠죠?

    한문제에 하루종일 걸리더라도 스스로 생각해버릇 해야합니다.

  • seoksu
    314
    2021-03-17 11:29:24

    아하.. 감사합니다. 잠깐은 아니지만 충분한 시간은 가지지 않았다고 생각이 드네요..

  • 앙두
    210
    2021-03-17 11:33:33 작성 2021-03-17 11:37:11 수정됨

    저는 윗 댓글하고 생각이 좀 다릅니다. 물론 그렇다고 그런 방식이 틀린 것은 아닙니다 !

    알고리즘 짜는 시간 1-2시간

    구현하는데 30분 - 1시간 (optimize 까지)


    이것도 여유있게 잡았는데 이 시간 이상을 넘긴다면 빠르게 설명이 붙어있는 다른 사람들의 풀이를 훑어보세요.


    만약 1-2시간 동안 문제 자체를 이해를 못하거나 알고리즘 (코딩이 아니라 문제 해결 아이디어) 조차 어떻게 짜야할지 생각이 안난다면 하루, 이틀 한달이 걸려도 못풉니다. 


    수학에서 이제 사칙연산 배웠는데 미적분 하라는거 하고 같아요.


    그리고 앞으로 풀어야할 문제도 많기 때문에 한 문제에 기력을 쏟기에는 너무 힘듭니다. 이렇게 풀면 제 풀에 쓰러져서 더욱 하기 싫어집니다. 

    그렇다고 똑같이 코드를 베껴쓰라는게 아니라 다른 사람이 어떤 방식으로 문제를 풀었고 왜 이 문제에서 이런 자료구조를 썼는지 그 알고리즘이 돌아가는 방식을 이해한 다음에 본인만의 생각으로 그걸 구현해야 합니다.


    아 그리고 그렇게 푼 문제는 나중에 다시 풀어보세요.

    아마 똑같은 곳에서 막힐껍니다 ㅋㅋ

  • ercnam
    6k
    2021-03-17 11:39:52

    음...첫댓글에 패기있게 적어두긴 했는데 앙두님 말씀도 맞습니다.

    핵심적인건 독해력이라고 생각해요. 막상 코드로 구현할땐 별거 아닌 문제인데 지문 자체가 꼬여있다 보니 이게 뭔소리여? 싶어서 진행이 안되는 경우가 자주 있습니다. 난이도로 치면 중급 정도?

    물론 고난이도 문제는 지문도 코딩도 어렵.... 근데 면접용으로 할려면 한 중급정도만 되도 괜찮지 않나 싶네요.

  • seoksu
    314
    2021-03-17 11:47:40

    ㅎㅎ 네 감사합니다. 아직은 알고리즘짜는시간까지 그런단계가 아니여서(프로그래머스 Level1 하고있습니다.)

    실력이 좀 더 향상된다면 충분한 시간을 정해놓고 생각하면서 풀어야겠네요.. 감사합니다!

  • sitonik
    363
    2021-03-17 13:14:36 작성 2021-03-17 13:17:03 수정됨

    저도 앙두님 생각과 비슷합니다.

    초심자가 알고리즘 문제를 풀릴 때까지 잡고 있는 공부 방식은 이제 옛날 방식이라고 생각합니다.

    요즘은 한 문제만 잡고 있으면 시간 낭비라고 생각하는 추세인 것 같습니다.


    지금도 수많은 알고리즘 문제들이 생겨나고 있습니다.

    그렇기 때문에 많은 문제를 접해보고 경험하는 것이 중요하다고 생각합니다.

    다만, 똑같은 실수를 반복하지 않도록 오답 노트처럼 잘 정리해둬야 합니다.

    내가 문제 해석을 잘못했는지, 더 효율적인 방법이 있는지, 제한 시간 내에 풀었는지 등

    다양한 문제를 접해보시고, 다양한 방법으로 풀어보세요. 

    수능 수학 공부하는 방식과 비슷할지도 모르겠습니다.

    (위의 경우는 해당 알고리즘에 대한 풀이 방법이 인터넷에 많이 있을 경우입니다.)


    어느정도 익숙해지면 인터넷에 검색해도 답이 없는 문제도 있습니다.

    백준의 경우 비교적 낮다는 실버 구간에서도 많이 존재하는데, 

    여기서 내가 풀 수 있겠다 싶으면 끝까지 붙잡고 풀어보고 다른 사람에게 코드 리뷰 받아보세요. 

    (아니면 블로그에 올리거나...)

    풀었다는 것에 자신감이 상승하고 다른 사람이 코드 리뷰 해주는 것에 실력이 상승할 것입니다.


    마지막으로 처음 접하시는 많은 분들이 보통 문제에 대한 제한 시간을 두지 않고 연습하시는 경우가 있습니다.

    어느 정도 언어에 대한 지식이 있으시다면 반드시 시간 제한을 설정하시고 푸시길 바랍니다.

    이렇게 하지 않을 경우 문제는 풀 수 있는 역량이 충분하지만, 

    막상 실전에 들어가서 제한 시간 내에 못 푸는 친구들도 있었습니다.


    열심히 하셔서 좋은 기업에 들어가시길 바랍니다.

  • 장독깨기
    3k
    2021-03-17 14:47:05 작성 2021-03-17 14:47:18 수정됨

    기본 자료구조와 알고리즘은 충분히 숙달한 다음에 문제를 풀어 보는 게 좋아 보입니다.

    어짜피 다 응용이고 그 응용력(문제해결능력)을 볼려고 하는겁니다.

    문제마다 답 보는 건 기본 지식이 좀 준비가 덜 되어 있는게 아닐까요?

    좀 비효율적으로 보입니다..

    모쪼록 생각 잘 하셔서 좋은 성과 거두길 바랍니다. ^^


  • 디벨로파
    32
    2021-05-10 20:25:33

    원래 처음엔 다 그런식으로 공부를 할 수 밖에 없습니다. 그런 답답함은 계속하면할수록 나아지게 됩니다.


    다만 공부하시는데 있어 개인적으로 추천하는 방식을 말씀 드리겠습니다.


    1. 꼭 알아야 하는 알고리즘 유형들을 먼저 보시는 것을 추천드립니다. 예를들면 완전탐색, bfs, dfs, 다이나믹프로그래밍 등등 입니다. 이 유형들은 여러 기업의 테스트에서 매우 중요하게 다뤄지고 있고, 따라서 효율이 가장 좋은 알고리즘 주제들 입니다. 


    2. 초반엔 어떻게 푸는지 모르겠으면, 잡고 오래고민하지 않는것을 추천드립니다. 초보일땐 고민이 큰 의미가 없습니다. 제 경험상 머릿속에 지식이 많이 쌓인 이후에 응용과 그걸위한 고민의 시간들이 성장에 의미가 있었습니다. 고민하는 시간은 10분을 넘기지 않기를 추천드립니다. 답지 보셔도 됩니다 너무 죄책감 갖지 마세요!


    더 디테일한 공부방법 관련해서는 제가 처음 알고리즘 공부를 시작해서 여러 기업 코테통과하기까지 공부방법을 정리해둔  입니다참고하시면 도움 될겁니다.  https://blog.naver.com/miracle_blossom/222286538681 

  • 로그인을 하시면 댓글을 등록할 수 있습니다.