본문 바로가기

알고리즘

코딩 테스트를 여행하는 개발자를 위한 모든 준비법

개요

제목으로 어그로를 끌어보고 싶어서 이렇게 작성했지만...

이 글은 그저 제가 코테를 준비하기 위해서 환경을 세팅한 내용을 정리한 글입니다.

 

저는 현재 당장의 취업에 있어서 코딩테스트를 통과할 지 말지 확신이 없는 흔한 골레기입니다..

골드가 레이팅이 상위 19%나 된다고?? 근데 내 앞에 2만 8천명 ㅋㅋ;

 

마지막으로 백준을 풀어본 게 언제인지도 기억이 안납니다.

그래도 돈을 벌어야하고 취업은 해야하잖아요?

주변 동기들은 졸업도 전에 취업하는 친구들이 몇몇 보이기 시작하고,

개발자 취업은 계속 어렵다고 하고 정작 내세울 포트폴리오가 하나도 없는 것 같고,

AI는 이제 나보다 코딩 훨씬 잘하는 것 같고,

이 세상에 내가 왜 필요한 지 모르겠고....

 

이런 상황에서 코딩테스트 공부 준비를 본격적으로 해봐야겠다고 생각한 것은 용기 있는 결정이 아니라

상황에 이끌려 도달한 종점일지도 모르겠습니다.

 

그럼에도, 용기있는 결정이라고 자기 위안 삼으면서

제가 돌아보기 위해서 알고리즘 공부를 위한 세팅을 정리해보겠습니다.

 

코테 공부를 위한 세팅

1. 언어 선택

저는 놀랍게도 19년도 학부 입학부터 알고리즘을 공부했습니다.

당시 저는 C언어가 나름대로 익숙한 상태였고, 학교에 알고리즘 동아리가 하나있었죠.

 

알고리즘?? 그게 정확히 뭔지는 몰라도 멋지고 어렵고 해야할 것인 것은 나지막히 느껴졌고,

어울리지 않게 꽤나 학구적인 스타일인 저는 그 동아리에 들어갔습니다.

 

그리고 그 동아리를 시작으로, 자료구조/알고리즘 수업과 해당 동아리가 사라진 뒤 다시 생겨난 동아리, UCPC와 ICPC까지 찍먹해보면서

약 5년 간 알고리즘에 통달한 선배들과 교수님, 동기들에게 C++에 대한 세뇌를 당했습니다.

 

농담입니다 ㅎㅎ;;

 

하지만, 저는 제 한계를 인정해야했죠. 나 같은 놈에게 C++은 너무 벅찬 언어라는 걸..

가장 중요한 요인은 언어 자체의 어려움보다는 꾸준하게 공부하지 않았던 것이 맞습니다...

그래도 매번 Pair를 선언하고 다루는 것과 같은 것들이 너무 열받더라구요 ㅎㅎ;;

알고리즘 로직만 생각해도 어려운데, 언어라는 부수적인 것까지 신경쓰느라 애먹었달까??(자기 합리화가 4줄)

그래서 이번엔 파이썬으로 공부해보기로 마음 먹었습니다.

2. 책 선택

저는 놀랍게도 학부생으로서 어떠한 공부를 책으로 해본 경험이 손에 꼽습니다..

저에게 인터넷은 정보의 바다이자 보고였고, GPT는 그곳의 나침반이며 구글은 배와 같았죠.

바다와 나침반 그리고 배가 있는데, 갈 수 없는 곳이 어디있겠습니까?

 

하지만, 인터넷은 정보의 호수였으며 GPT는 유사 나침반이었습니다.

배가 있지만 중요한 것은 제가 뭘 모르는 지 모르고 뭘 물어봐야할 지 즉, 어디로 가야할 지 몰랐던 것이었죠.

말하자면.. 이런?

 

그런 저에게 하나부터 열까지 알려주는 가이드라인 같은 존재가 있다는 것은 하나의 구원과 같았습니다.

책이 그런 존재라는 것은 학부 입학 때부터 왜인지 머릿속에서 사라졌었죠.

그 기억을 끌어내어 준 것은 "자바 웹 프로그래밍 Next Step"이라는 책이었습니다.

 

이런 경험을 통해 앞으로의 학습은 공식문서와 책으로 해야하며, 블로그는 주된 학습 매체가 될 수 없다는 것을 깨달았습니다.

너무 늦었지만, 이 깨달음을 적용해보려고 합니다.

그 깨달음을 적용하는 과정에서 블로그는, 저의 항해일지가 될 것입니다.

 

어 그러니까 요약을 하자면... 책으로 공부할 거라는 얘기입니다.

 

책은 몇 번 들어본 기억이 있는 나동빈님의 "이것이 취업을 위한 코딩테스트다"로 정했습니다.

선택 이유는 지인 추천 + 실용성과 처음부터 끝까지 알려주는 가이드라인의 면모가 강하다는 점입니다.

 

이제 시작해가지고 언제 코테 합격을 해볼 지 모르겠습니다(사실은 이력서도 쓰기 두렵습니다)

그래도 주변에서 해주는 말처럼 너무 조급하지 않게 준비해보려고 합니다

 

정 안되더라도 뭐라도 해먹고 살겠죠!!

 

3. 개발 환경

알고리즘 풀이에 개발 환경이란 말은 거창하려나요??

그럼 편하고 이쁜 메모장 선택이라고 바꿔보겠습니다.

3. 편하고 이쁜 메모장 선택

역시 지인의 힘은 위대합니다.

지인 추천으로 replit이라는 웹 IDE를 발견했습니다.

제가 이때 추천받을 때까지만 해도 몰랐는데, AI로 좀 뜨고 있는 기술이더군요.

 

아무튼 파이썬 문법도 어색한데, AI가 추천도 해주고 잘됐다 싶었죠.

(근데 너무 시도 때도 없이 추천하길래 지금은 추천 기능을 껐습니다)

4. 풀이 저장

근데 문제는 코드를 어떻게 저장하고 관리할 지가 고민이었습니다.

예전에는 어떻게 했냐구요?

 

안녕 CLion? 오랜만이야

 

네 IDE에 그냥 무작정 저장해두었죠(옆의 코드를 보니 C++ 때려치길 잘했다는 생각이 다시 듭니다..)

근데 뭐 불편하긴 하더라구요, 매번 main 찾아서 해당 헤더파일 include 해서 실행해주고...

 

근데 replit을 추천해준 지인이

이번엔 백준에서의 풀이 기록을 자동으로 깃헙에 연동할 수 있는 방법을 알려주더군요(고맙다 밥이라도 살게)

어렵지도 않습니다.

 

1. "백준허브"라는 크롬 익스텐션을 설치한다

 

백준허브(BaekjoonHub) - Chrome 웹 스토어

Automatically integrate your BOJ submissions to GitHub

chromewebstore.google.com

 

2. 크롬 익스텐션의 화면에서 authentication을 한다.

 

원래 여기 버튼이 있습니다만.. 저는 이미 연동을 해버려서 ㅎㅎ

 

3. 이후에 뜨는 화면(위 사진에서 홈 아이콘 선택해도 뜸)에서 레포를 만들어준다

 

4. 완료되면 이런 화면이 뜬다

 

bae /< joon이라니 센스 쩐다;;

 

 

프로그래머스도 이와같이 연동할 수 있는데, 레포에는 이렇게 폴더가 구분되서 저장됩니다.

프로그래머스는 나중에 해볼 것 같습니다.

 

 

 

이제부터는, 백준에서 풀이를 진행하고 맞았습니다!!가 뜨면 잠시 로딩바가 뜨다가 체크표시가 뜨게 됩니다.

체크 표시가 뜨면 깃헙에 업로드가 완료되었다는 의미입니다.

 

정리

사실 이렇게 세팅해둔지도 좀 됐는데... 그동안 좀 바빴다고 해둡시다(블로그 닉값)

최근에 수영을 시작하고, 앞서 언급했던 책 공부를 하면서 꾸준함의 힘에 대해서 느끼고 있는 중입니다.

제발제발제발 조금씩만 해도 좋으니까 꾸준히 하길 바래봅니다.