우당탕탕 비전공자의 알고리즘 문제풀이 1개월차

악어·2024년 4월 16일
11

코딩테스트

목록 보기
1/6

한 달 수행 결과





내 소개


평범한 건축공학과 4학년생이었던 나는
아무런 컴퓨터공학 전공지식 없이 무작정 유튜브로 코딩을 공부했다.

만들고 싶던 서비스가 있어 휴학 후 앱을 만들어 회사를 차렸고,
나름 정부지원 사업도 따내는 등 선전했지만..
현실에 부딪혀 사이드 프로젝트로 돌리고
약 2달 전부터 취업을 준비하고 있다.

개발자는 실력으로 모든걸 증명해야하기 때문에
알고리즘 공부를 통한 코딩테스트 준비는 필수라고 생각했다.
이에 2달 중 한 달은 이론적인 공부와 포스팅에 집중했고,
나머지 한 달 남짓은 본격적인 문제풀이에 들어섰다.




공부 방법


1. 백준 '단계별로 풀어보기'

정말 어떤 문제를 어떻게 풀어야하는지 아무것도 몰랐기에,
무작정 구글에 '백준'을 검색해 들어갔다.
문제부분에 '단계별로 풀어보기'가 눈에 띄었고
처음부터 차근차근 풀어가기 시작했다.


아무것도 모르는 문제풀이 초심자의 입장에서,
가장 답답한건 바로 이 부분이었다.

"어떻게든 풀었는데 이게 맞나?"

내 풀이가 최선의 풀이인지 아닌지,
이 문제에서 내가 어떤걸 배워가야하는지..
문제마다 의미부여하며 질문게시판을 왔다갔다하며
다른사람들의 풀이를 들여다보곤 했다.


뭐 아직도 초보자인 입장에서 이런말 하기 뭐하지만,
뉴비가 나와같은 시행착오를 겪고 있다면 이렇게 말해주고싶다.

"풀렸으면 넘어가라. 어차피 나중에 무조건 막히는 순간이 온다.
그때 관련 지식 공부하고 다른사람 풀이에서 배워가면 된다."

돌이켜보면, 단계별로 풀어보기 초반 저난이도 문제의 경우
알고리즘 개념을 '공부'한다기보다는 코딩테스트에 사용되는
주요 표현과 입출력 형식, 필요한 모듈이나 채점원리 등을
이해하라고 만들어놓은 일종의 튜토리얼이었던 것으로 보인다.
그러니 초반에는 그냥 길대로 따라 쭉 걸어가면 된다.



2. solved.ac, programmers 문제

어느정도 문제푸는 매커니즘이 손에 익었다면,
solved.ac class별 문제나 프로그래머스의 난이도/알고리즘별
문제를 푸는것을 추천한다.

이전까지는 그냥 흰건 화면이고 검은건 글씨거니.. 하며 풀었다면,
이제는 내가 푸는 문제가 어떤 카테고리에 속하고,
해당 카테고리에서는 어떤 원리로 문제를 풀어나가야하는지
감을 익히는 단계
이다.

나도 현재 이 단계를 진행하고 있고,
이쯤 되니 내가 무슨 공부를 할지가 명확해졌다.
가령 solved.ac 프로필에서 아래 그래프를 봤다고 하자.

척 봐도 '아, 내가 그리디, 그래프쪽은 젬병이겠구나'하는게 한눈에 보인다.
이 알고리즘에 대해 전혀 몰라도 너무 두려워 하지는 말자.

그냥 구글에 개념을 검색해 원리를 이해한 뒤,
저 난이도 문제부터 차근차근 풀며 다른사람들의 풀이와 비교하다보면
카테고리를 관통하는 흐름이 보일 것이다.
(가령 dp 문제에서 기계적으로 점화식을 만들어 본다든지..)
그 풀이가 손에 익을정도만 반복하면 된다.

현재 나는 취약한 부분을 공부하고 문풀하는 것을 반복한 결과
solved.ac골드와 programmers 2단계를 달성할 수 있었다.



3. 기업 코테 기출풀이(예정)

대표적인 알고리즘들에 대한 공부를 어느정도 마무리하면
코테 기출풀이를 진행할 예정이다.
올해 상반기 내로 기출풀이에 익숙해지는 것이 목표고,
이 쯤부터 포폴을 찔러넣으며 취업시장에 몸을 던질 것이다.




정리


혹시나 나처럼 비전공자로서 코딩 테스트를 준비하는 사람이
있을까 싶어 포스팅을 써봤다.

내가 그랬듯, 시작도 전에 쫄아있다면..
생각보다 별거없다. 그냥 시작해보자!!



profile
냅다 회사부터 세워버린 개발자

4개의 댓글

comment-user-thumbnail
2025년 7월 6일

안녕하세요. 글잘 읽었습니다.
저도 같은 안드로이드 개발자로써 코테에서 낙방했어 최근 우울증이 심해졌는데
악어님 글을 읽고 다시 힘내서 공부해보겠습니다.
고생하셨습니다!

1개의 답글
comment-user-thumbnail
2025년 9월 29일

항상 악어님 글을 자주 보고 있어요. 참고도 많이 합니다.
저는 악어님의 공부 포스팅에는 핵심을 적어 놓지 않으셨다 생각해요.
핵심은 개념이였을거 같아요. 개념을 단단하게 잘 잡으시고 100일, 2달간의 여정의 결과가 좋으셨을 것이라 생각해요.
개념을 잡아가시는 기간을 따로 잡지 않으셨다면, 프로젝트부터 창업까지, hw 등 다양한 개발 환경과 언어들 사이에서 자연스럽게, 다양한 자료들을 읽고 공부하시면서, 개념이 자연스럽게 단단하게 다져진게 아닐까 싶구요.

그저 악어님의 블로그를 읽어가며, 감탄이 나오면서도, 저의 공부방법과 방향성을 다시 한번 생각하게 되는 계기가 여럿 있습니다.

항상 글 공유하고 소통하면 좋겠습니다.

1개의 답글