코딩테스트 언어 선택 / Python → Java 변경 이유 / 코딩테스트 팁

코딩테스트 언어 선택

Python 선택 이유

  • Java, C에서 직접 구현해야 하는 코드를 파이썬에서는 기본 제공하는 경우가 많아 코드가 간결해집니다.
  • 알고리즘 대회가 아닌, 기업 코딩테스트에서 파이썬이 느려서 탈락하는 경우는 거의 없다고 합니다.
  • 코딩테스트에 유리한 언어가 파이썬이기 때문에, 좋은 강의가 대부분 파이썬으로 나와있습니다.
  • 코딩테스트 공부 시간을 최소화하기 위해 파이썬으로 준비하기로 결정하였습니다.
  • 파이썬은 웹 크롤링, 데이터 정제에 특화되어 개발형 코딩테스트 언어로도 유리합니다.

Python → Java 변경 이유

  • 신세계 등 대기업 코딩테스트는 Java로 픽스되어서 파이썬으로 못 푸는 경우가 꽤 있습니다.
  • 파이썬 문법을 자주 안쓰니까 익숙하지 않아 문제 풀 때 헷갈려서 더 막히기도 했습니다.
  • 웹 개발자로서 코테 준비와 동시에 주력 언어인 Java를 마스터하고 싶었습니다.
  • 파이썬 내장 모듈을 외워서 푸는 것보다, 로직을 직접 구현하며 공부하고 싶었습니다.
  • 평소에 자주 쓰는 언어라서 습득이 빠르고 응용하기 쉽다는 장점이 있습니다.

코딩테스트 팁

코딩테스트 공부 순서

  1. 선택한 언어 문법 공부
  2. 프로그래머스 입문 Lv.0 100문제 풀기
  3. 프로그래머스 코딩 기초 트레이닝 Lv.0 124 문제 풀기
  4. 자료구조, 알고리즘 공부
  5. 프로그래머스 코딩테스트 고득점 Kit 1~3단계 풀기
  6. 코딩테스트 스킬체크 1~3단계 풀기
  7. 백준 골드3까지 풀기
  8. 카카오 등 대기업 코테 문제 풀기

대기업 코테 난이도

프로그래머스 3단계, 백준 골드3, 코드포스 블루 레벨을 풀 수 있으면 대부분 합격 가능합니다.
잘 안 나오는 프로그래머스 LV.4 이상은 일단 건너 띄우고 공부해도 좋습니다.

코딩테스트 문제 공부 방법

  1. 문제 설명, 제한사항, 입출력 예를 꼼꼼히 이해합니다.
  2. 코드 설계를 주석으로 작성하고 문제를 풀어봅니다.
  3. 30분 넘게 문제를 풀지 못하면, 검색하여 답안을 제출합니다.
  4. 마음에 드는 답안의 주석을 chatGPT에게 요청합니다.
  5. 위에서부터 순차적으로 한 줄씩 이해하며 주석을 수정합니다.
  6. 본인 스타일에 맞게 코드를 개선합니다.
  7. 시간이 지난 후, 모든 코드를 초기화하고 다시 풀어봅니다.
  8. 힌트 없이 코드를 구현할 수 있게 되면 다음 문제로 넘어갑니다.

코딩테스트 시간복잡도

  • 입력 값의 크기가 10의 8승(1억) 이상이면, 시간복잡도 O(n) 이하 자료구조/알고리즘을 선택합니다.
  • 제한시간 1초 문제에 시간복잡도 O(n²) 자료구조/알고리즘을 사용하려면 입력 값이 5,000 이내여야 합니다.

코딩테스트 동기부여

  • 입사할 수 있는 좋은 기업이 더 많아집니다.
  • 자료구조, 알고리즘을 직접 구현하며 공부할 수 있습니다.
  • 실력 상승과 성취감을 원동력으로 풀면 좋습니다.

코딩테스트 풀면서 느낀점

  • 문법을 익히고 유용한 자료구조 객체나 함수를 외우는 것이 중요합니다.
  • 쉬운 문제부터 최대한 많은 문제를 풀어보며 익숙해져야 합니다.
  • 문제를 풀고나면 항상 다른 사람의 풀이를 보고 배워서 익혀두는 것이 좋습니다.
  • 다른 사람의 풀이에서 좋아요를 많이 받은 짧은 코드가 무조건 좋은 코드는 아닙니다.
  • Java 코테는 스트림보다 디버깅이 용이하고 성능이 좋은 for문 사용이 권장됩니다.
  • 프로그래머스, 백준 등 여러 사이트를 골고루 풀어봐야 다른 사이트도 적응하기 쉽습니다.

Leave a comment