컴퓨터/알고리즘

알고리즘 문제 풀이 순서, 공부 방법 (1) - 비전공자/문제풀이 처음

우유식빵 2024. 3. 24. 22:32

SSAFY멘토링을 진행하면서 많은 분들이 '비전공자로서 문제풀이 로드맵', '공부 방법 혹은 순서', '공부하는 법'을 궁금해한다는 것을 알게 됐다. 전공자도 처음 시작한다면 그러하겠지만 비전공자로서 PS에 입문하시는 분들은 정말로 뭐부터 해야할지 모를 수 있겠구나 깨달았다.

 

그래서 교육생분들께 관련하여 소개할 컬럼을 작성하면서 블로그에도 글을 남겨본다.

나 역시 알고리즘 문제 풀이 전문가도아니고 실력자도 아니지만, 

오히려 그렇기 때문에 나의 처음과 비슷한 시작점에 계신 분들에게는

같은 눈높이에서 적힌 글이 될거고, 도움이 되지 않을까..하고 기대해본다.

 

목차

  1. 알고리즘 공부 방법

    1-1. 비전공자이거나 문제풀이가 처음인 분

    1-2. 전공자이거나 문제풀이 경험이 적은 분

    1-3. 문제풀이를 꽤 해봤으며 어느 정도 자신의 수준을 아는 분

  2. 알고리즘 문제풀이 재미있게 하는 법

 

   1. 알고리즘  문제 풀이 공부 방법


앞으로 소개할 사이트 주소를 미리 적어 놓겠다.

아무래도 SSAFY교육생 분들을 대상으로 글을 적으려 했다보니,

자료구조와 기초적인 알고리즘에 대한 지식을 갖고있으며

여러 수업을 통해 기본적인 코딩이 가능한 수준을 기준으로 시작해보고자한다.

 

코딩을 처음 해보는 사람을 위한 안내서가 아닌, 알고리즘 자체를 어떻게 공부하는 지에 관한 안내서가 아닌,

SW직군을 희망하며 공부했는데, 코딩테스트를 준비하기 위한 "문제 풀이"가

익숙하지 않은 분들을 위한 안내서라고 생각하면 좋을 것 같다. 

 

어떤 문제들을 풀며, 시간 혹은 문제수를 어떻게 배분하며 풀면 좋을지에 대해 적어보려고한다.

물론 기준은 나의 아주 지극히 개인적인 경험이다. 

 

추후 노베이스로 알고리즘 공부부터 스스로 독학했던 동기의

경험을 바탕으로 알고리즘 공부 방법 자체에 대해서도 블로그에 정리해보고싶긴하다.

내 귀찮음이 가만히 있어 준다면...

 

 

   1-1. 비전공자이거나 문제풀이가 처음이신 분


비전공자분 혹은 알고리즘 문제풀이를 처음 도전해보시는 분들은 뭐 부터 시작하면 좋은지 궁금할 수 있다.

이런 경우 백준에서 [단계별로 풀어보기]로 시작해보는 것을 추천한다.

[백준 > 문제집 > 단계별로 풀어보기]로 들어가서 보면 단계마다 여러개의 문제들이 나누어져있다

백준 > 문제 > 단계별로 풀어보기

 

단계별 제목. 문제수가 보인다. 풀기 시작하면 도전중, 다 풀면 완료가 된다.

위 이미지처럼 단계별로 문제들이 나누어져있다. 우선 단계별로 모든 문제를 풀어보는 것을 추천한다.

때로는 귀찮고 시간이 걸리는 문제들도 있지만.. 예를들면 별찍기. (예전에는 있었던 것 같은데 여전히 있나?)

당장은 문제풀이에 대한 감과 경험이 없기 때문에 이런 것들도 감내하고 모두 겪어보는 것을 추천한다.

가능하다면 절취선 이전인 16단계까지 해보는 것을 추천한다. 

내 경우는.. 예전에 다 완료였는데 그 이후로 계속 업데이트가 돼서 거의 도전중으로 다시 바꼈다

 

단계별로 문제 풀기를 완료했다면, 다음으로 소개하는 것은 선택사항이다.

아직 문제풀이에 대한 감이 잡히지 않았다면, 기초적인 수준을 더 연습해보고 싶다면 따라해보길 추천한다.

백준과 연동되어있는 solved.ac 라는 사이트에 들어가보면 [문제 > Class]라고 

단계별 문제풀이와 같이 Class별로 문제를 모아둔 것을 볼 수 있다. 

solved.ac 문제 class

이 곳에서 Class 1과 Class 2를 기본 문제들과 에센셜 문제들을 모두 풀어보거나

Class별로 STANDARD가 적혀있는 문제들을 풀어보는 것을 추천한다. 

 

standard 표시

 

이 정도까지 완료했다면, 문제 풀이를 위한 기초는 진작에 다 뗐다고 볼 수 있다.

문제를 풀다가 모르는 부분이 있거나 계속 틀리거나, 못 풀겠다고 생각되는 부분이 있다면

 

문제 페이지에서 질문 게시판에 다른 사람이 올린 질문들을 참고해보면 좋다.

보통 웬만하면 내가 궁금한 부분들은 다른 사람들도 똑같이 궁금해 하는 것 같다.

질문게시판으로도 부족하다면 구글에 해당 문제를 검색해서 다른 사람의 문제 풀이를 참고해 보는 것도 좋다.

참고하고, 이해하는 것도 중요하다.

 

이런 단계를 거치기 위해 추천하는 문제 풀이 시간 분배나 풀이 개수는 

하루에 1~2시간 풀이를 하거나 단계별 문제풀이에서 하루에 한 단계에 있는 문제들은 다 풀기 (가능하다면 2단계씩),

Class별로 문제를 풀 때는 5개 이상씩 풀어보기를 추천한다. (가능하다면 10개이상)

왜냐하면 문제의 난이도가 높지 않아 금방 뗄 수 있기 때문이다.

 

 

 

다음에는 이어서 전공자이거나 문제풀이 경험이 적은사람을 위한 

알고리즘 문제 풀이 공부 방법에 대해 적어보겠다.

>>  알고리즘 문제 풀이 순서, 공부 방법 (2) - 전공자/문제풀이 초보: https://waytocse.tistory.com/115