본문 바로가기
Algorithm/기타

코딩 테스트 준비하기

by jaesungLeee 2021. 7. 18.

 

1. 언어 선택하기

가장 편한 언어, 직군 관련 언어, 서브 언어로 나눠서 나에게 어떤게 더 맞는지 하나씩 따져보기

ex)
1. 가장 편한 언어? : kotlin, python
2. 직군 관련 언어? : kotlin
3. 서브 언어? : python (문법은 알지만 안한지 오래됨), c++ (거의 제로베이스)

결론 : 주력 언어 - kotlin, 서브 언어 - python

 

서브 언어는 문법 정도만 알아도 상관 없음

주 언어로 푼 문제를 똑같이 서브 언어로 풀 수 있을 정도만? 준비하기

 

1.1 C++

장점 : 

  1. 다양한 STL (Standard Template Library)를 제공한다.
  2. 거의 모든 코딩테스트에서 사용 가능하다.

단점 :

  1. Python에 비해 문자열 처리가 어려움
  2. 입문하기가 어렵다
LG CNS : C++ 사용 불가
SK 하이닉스 : C, C++만 사용 가능

 

1.2 Python

장점 

  1. 입문이 쉽다.
  2. 라이브러리가 굉장히 강력하다.
  3. 문자열 처리에 이점이 강하다.
  4. 거의 모든 코딩테스트에서 사용 가능하다.

단점 :

  1. 느리다는 문제점이 있다
코딩테스트에서 언어 별로 주어지는 시간이 다를 뿐더러, 효율성 문제는 언어 자체의 문제보다는 내가 짠 알고리즘의 시간 복잡도 문제가 더 크다!

 

1.3 Java

장점 

  1. 웹 / 앱 직무의 주력 언어
  2. 거의 모든 코딩테스트에서 사용 가능

단점 :

  1. 입 출력이 번거롭다.
  2. 명령어가 길다. (IDE를 사용하지 못하는 코테에서는 계속 쳐야함)

 

2. IDE (개발 환경) 설치하기

언어 IDE
C, C++ VSCode
Python Pycharm, VSCode
Java Eclipse, IntelliJ
Kotlin IntelliJ

 

3. 코딩 테스트 연습 플랫폼 추천

  1. Leetcode : 인턴, 상시, 경력에서 많이 사용 - ex. 11번가
  2. Codility : 인턴, 상시, 경력에서 많이 사용 - ex. 쿠팡
  3. Goorm : NHN, 미래에셋 - 입력값을 어떻게 받는지 알아보고 들어가야함!
  4. Hackerrank : 인턴, 상시, 경력에서 많이 사용 - ex. 네이버
  5. Programmers : 대부분 기업에서 사용
  6. BOJ : 시험 진행은 따로 하지 않음
  7. SW Expert Academy : 삼성 시험 환경과 같음

 

3.1 BOJ (백준 온라인 저지)

티어 기준 골드 1까지만 잘 풀어도 합격 가능하다고 함

  1. 문제 수가 많다!
  2. 유형 별 문제집이 있다!
  3. 삼성 기출 문제집 + 삼성 A형 기출 문제집
  4. 풀이가 다양하게 있음

 

3.2 Programmers

  1. 가장 많은 시험을 진행 - 시험 환경 적응에 좋음
  2. 코딩테스트 고득점 키트 - 주요 알고리즘 문제집 (난이도 별 분류가 되어있음)
  3. 카카오 기출 문제집!
  4. SQL 문제집! - 금융권 IT 직군 코딩테스트 대비
  5. 오토에버, 라인, 카카오, 쿠팡, 네이버, LG CNS, SK 하이닉스 등등 
Programmers로 알고리즘에 익숙해지고 어려웠던 유형을 BOJ에서 많이 풀어보는 방향이 좋다!
IDE에 너무 의존하지 말고 온라인 플랫폼에서 직접 해보는게 필요함

 

 

4. 팁

  1. IDE 없이 온라인 플랫폼에서 푸는 연습 많이 하기 (자동완성 기능 없이 하는 습관 들이기)
  2. 문제 풀기 전에 손부터 나가지 말고 접근 방법부터 생각
    1. 바로 코드를 쓰는 것 보다 어떤 코드를 내가 구현할 지 주석으로 적어놓고 하는 것이 좋을듯
  3. 반년 정도 투자한다는 생각으로 (하루에 두 세 문제씩)
  4. 시간 복잡도 고려하기
    1. 최악의 입력에 대해 내가 짠 알고리즘이 시간초과가 생기지 않는지 코딩하기 전 부터 고려하기
  5. 엣지케이스 고려하기
  6. 디버깅 하기 : 프린트 문 찍어보기
  7. 알고리즘 분류가 아예 안될 때는 풀이를 참고, 방향을 알 때는 그냥 풀어보기
  8. Main 안에 다 풀지 말고 함수별로 나눠서 풀기

 

 

 

Reference

https://www.youtube.com/watch?v=uGAssHEHCNI