본문 바로가기
ETC/IT 이야기

코딩 테스트 준비할 때 꿀팁 (feat. 네카라쿠배)

by 코딩의성지 2021. 7. 22.

하이 ...!

 

오늘은 대학생 분들이나 이직을 준비하시는 많은 분들에게 도움을 드리고자 글을 좀 적어보려고 한다.

 

취업을 준비하던 시절 꾸준하게 알고리즘 문제를 풀었었고, 요즘도 감이 죽지 않도록 하루에 한 두 문제는 꾸준히 풀고 있다. 솔직히 나는 고등학교 시절까지 문과였고 머리속에는 논리적인게 하나도 없어서 처음에 알고리즘을 풀때 굉장히 곤혹 스러웠다.

 

문제를 해석하는 것부터 시작해서 문제를 푼다해도 채점사이트에서 돌려보면 오답으로 나오는 것 까지... 굉장히 고비와 고난이 많았다..

 

그래도 지금은 나름대로 잘하는 건 아니라도 알고리즘 문제가 주어지면 어느정도 접근은 되고, 어려운 난이도가 아니라면 어찌 저찌 풀어내긴 한다.

 

이렇게 알고리즘 초보자가 중초보자(?)가 될 수 있는 노하우를 알려드리려 한다.

 

 

1. 컴파일러가 되어라.

이건 정말로 완전 초보 분들에게는 꿀 팁 오브 꿀 팁이다. 문제를 풀다보면 분명히 오답이 나올 것이다. 이때 그냥 고치지 말고 마치 본인이 컴파일러가 된 것처럼 테스트 케이스를 가지고 한줄 한줄 로직을 점검해보면 좋다.

 

종이에다 그림을 그려가면서 본인이 짠 로직을 검사하다보면 "으잉? 뭐야 여기가 잘못됐네" 하면서 잘못된 부분을 찾을 수 있을 것이다. 이런 과정을 지속적으로 반복하면서 코딩하면 나중에는 본인이 짠 로직의 그림이 머리속에 쭉 그려지는 날이 올 것이다.

 

하나 더 팁을 드리자면, 종이에 그리는 것보다. 아이패드나 갤럭시 탭 같은 태블릿이 있으면 참 좋다. 왜냐면 종이에다 그리면 변수가 변하는 과정을 체크하다보면 종이가 더러워지고... 조금 복잡한 알고리즘이라면 본인도 헷갈리게 된다. 그런데 태블릿으로 그리다 보면, 끄적인걸 지우기 편하고 깔끔하게 지워지다 보니 깔끔한 그림을 그려낼 수 있다. 순전히 나의 개인적인 의견이다.

 

2. 특정 알고리즘이나 자료구조 익숙해져라.

알고리즘 사이트나 코딩 테스트를 보면 대부분 열 몇가지 정도되는 알고리즘이나 자료구조 방식으로 문제가 나온다. 대충 기억나는 것만 끄적여 보면

 

Stack, Queue, HashMap, TreeSet, Binary Tree, Sorting, 재귀함수, DFS, BFS, Tree, Greedy, DP....

 

이정도 생각이 나는데, 이 위에것만 공부하고 익숙해지면 어떤문제든 풀어낼수 있다고 나는 생각한다. (극악의 난이도인 알고리즘을 제외하면 말이다.. 코딩 테스트를 위해서는 충분할 것이다)

 

충분한 공부를 통해 익숙해지길 바란다.

 

3. 최적화를 생각하라

아무리 간단해 보이는 문제라도 최적화를 생각하여 개발해야한다. 오히려 간단해 보이는 문제가 시간 복잡도로 장난질(?) 하는 경우가 많다. 테스트 범위가 10만 이런식이면 아 이건 n중 for문으로 풀면안되는구나 생각하면 된다. 그런걸 떠나서 항상 문제를 풀때 최적화를 생각하면서 풀도록 하자. 어떤 회사든 for문을 중첩해서 개발하는 개발자를 뽑기를 원하진 않을 거니 말이다.

 

4. 섣불리 해답을 보지마라.

해답을 보면 "아! 이렇게 쉽게 풀수 있다니" 라고 생각되는 문제가 꽤 될것이다. 일단 해답을 보고 문제를 풀면 굉장히 쉽게 풀수 있지만... 한 3일만 지나도 "이거 어떻게 했더라 ?" 생각이 들 것이다. 해답을 보고 푼문제는 내가 푼문제는 내 지식이 되긴 어렵다. 그러니 충분히 고민하고 문제를 풀어보고 도저히 안된다고 생각이 들때 해답을 보자. 그리고 해답을 보고 푼문제는 몇번이고 다시 연습을 해봐야 자신의 것으로 만들수 있다는 것도 잊지말자.

 

 

 

반응형

댓글