티스토리 뷰

회고록/가이드

나는 코딩테스트를 이렇게 준비했다

글을 쓰는 개발자 2022. 9. 14. 21:21
반응형

이 글을 보기 전

아마 대부분 이 글을 보는 사람들은 코딩테스트를 처음 준비하거나 다른 방법이 있을까 라는 기대감에 들어왔을거다.

우선 처음부터 실망감을 안겨드려야 할 것 같다.

개인적인 의견으로는 코딩테스트를 준비하는 데 있어서 절대적 양이 필요하다. (물론 원래 코테를 잘하시는 분들은 이 글을 볼 일이 없을 거다.)

하지만 다들 이 말을 원해서 오지는 않을 것이다!

 

걱정마라!

 

여러분도 이렇게 한다면 더 좋은 결과가 있을거라 생각한다.(필자 또한 코딩테스트를 그렇게 좋아하지는 않았다. 하지만 어쩌겠는가 대규모 인원을 단시간에 평가할 수 있는 수단은 현재로서는 코딩테스트만 한 것이 없다.)

 

 

사이트 추천

우선 알고리즘 연습하는 사이트를 알려줄려고 한다.

https://leetcode.com/problemset/all/

다들 아실 것 같지만 리트코드 를 추천한다.

필자 또한 프로그래머스, 백준 등 다양한 알고리즘 사이트를 풀어봤지만 가장 깔끔하고 오로지 알고리즘에 대해서 묻는 사이트는 리트코드 였다.

 

그럼 어떻게 시작하였는가?

필자는 다음과 같이 진행하였다.

지금은 안 보이는 것 같지만 예전에는 TOP 100 이 있었다.

그 문제를 거의 외우다시피 했으며 여러 discuss를 참고하여 풀었다.

지금은 여러 플랜을 추천하고 있는데 만약에 처음이라면 Data Structure Plan을 추천한다.

기본적으로 문제를 볼 때 어떤 자료구조를 써야할 지 알아야 한다. 그렇기에 Data Structure Plan 필히 먼저 하시는 것을 강력 추천한다.

그리고 나서 자신이 부족한 부분에 대한 영역을 채워나가시면 될 것 같다.

 

 

나는 어떻게 실천했는가?

우선 부끄럽지만 제가 예전에 작성했던 플래너의 일부분을 보여주고자 한다.

 

해당 사진을 보여주고자 한 것은 날짜Sliding Window maximum 을 보여주기 위함이다. (사진을 보면 아시다시피 일주일 후에 풀었음을 알 수 있다. 필자도 다시 보니 놀랐는데 이때 다시 누적으로 7문제 정도 풀었다. )

 

저는 우선 망각곡선의 규칙을 적용하여 문제를 풀었다. (초반이긴 하지만 대략 6개월 가까이 지켜왔다.)

START 문제를 다 푼다.
10분 후 문제만 보고 머릿 속으로 해당 로직을 그려본다.
자기 전 다시 한 번 풀어본다.
일주일 후 다시 풀어본다.
한달 후 다시 풀어본다.

이렇게 누적형식으로 풀다 보면 해당 패턴들이 익숙해지게 된다.

그렇게 대략 100문제 가까이 풀었을 때 왠만한 기업 코테는 다 통과를 했었다. ( 초기에는 대기업까지는 통과를 못했다 ㅠㅠ)

 

하지만 이렇게 1년 가까이 한 결과 네카라쿠배 안에 드는 기업에 취업을 하게 되었고 붙을 수 있었던 요인의 주된 요인은 위와 같은 패턴이 있었기에 이렇게 되었다고 생각한다.

 

어떻게 풀어야 하는가?

필자는 개인적으로 변수명, 메소드 분리, 적절한 자료구조 이 세박자가 중요하다고 생각한다.

어떤 사람은 그냥 점수만 적절하게 넘기면 끝나는 거 아니냐고 물을 수 있는데 진짜 그렇게 할 수도 있다.

하지만 누군가는 정말 여러분의 코드를 보는 사람이 있을 것이고 변수명이 'a' , 'b', 'aa' 이런식이면 가차 없이 탈락을 외칠 것이다.

그리고 대기업에서 스타트업으로 내려갈수록 여러분의 코드를 열 확률은 올라갈 것이고, 열었을 때 변수명 메소드의 적절한 분리 등 클린 코드를 지향하는 가에 대한 평가를 내릴 것이다.

 

https://vixxcode.tistory.com/218?category=962977 

 

[프로그래머스] [자바] [카카오] 튜플

https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3..

vixxcode.tistory.com

엄청 적절한 예시는 아니지만 풀 때 이렇게 푼다면 면접관이 만일 물어본다고 했을 때 다른 면접자 보다는 말할 거리도 생기지 않을까 싶다.

 

마지막 한마디

여러분도 열심히 준비만 한다면 코딩테스트라는 벽을 허물 수 있을 것이다.

개개인마다 열심의 기준은 다르겠지만 필자가 생각하는 열심의 기준은 위에서 소개한 것 같다.

물론 제가 투자한 노력의 절반도 안되는 것으로 통과한 사람들도 많을 것이다.

필자는 알고리즘이 다른 사람들에 비해서 많이 부족하고 이해도가 없었기에 이렇게라도 안하면 안된다는 마인드로 철저한 계획과 이에 대한 실행으로 붙었던 것 같다.

 

그러니 "여러분도 주변사람들을 비교하지 말고 나 자신과 비교하는 자세를 가지자" 라는 덕담을 마지막으로 글을 마무리 할려고 한다.

반응형

'회고록 > 가이드' 카테고리의 다른 글

나는 면접을 이렇게 준비했다  (3) 2022.09.17
나는 이력서를 이렇게 준비했다  (0) 2022.09.17
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함