야곰닷넷 테크캐스트 [iOS 개발자 코딩테스트 이야기] 요약

Updated:

어서와 코딩테스트는 처음이지? - 비비(김예빈)

Speaker 김예빈

  • 김예빈, 비비, 무마니
  • 코딩테스트를 통해 카카오 iOS 신입 입사
  • 프로그래밍 + 디자인 전공
  • 졸업 당시 알고리즘 베이스 없음
  • 인턴, 외부 프로젝트 경험 없음

코딩테스트에 입문한 과정

  • 알고리즘 문제의 유형, 기출 방식이 어느정도 정해져 있음
  • 문제의 유형: 문자열, 스택/큐, 그래프, 정렬, 동적계획법(DP)
  • 기출 방식: 문자열 치환, LCS(DP), 괄호 짝 맞추기(스택)
  • 수능 문제 풀이처럼 접근 (유형 파악 -> 개념 공부 -> 문제 풀이)
    • 문제 풀이는 제한 시간을 정해두기
  • 엄선된 문제를 우선으로 풀기
    • 프로그래머스 - 코딩테스트 고득점 Kit
    • 백준 - 단계별 풀이
    • 다양한 풀이를 참조할 수 있음

코딩테스트 문제 푸는 과정

  1. 문제 정독
  2. 요구사항 및 테스트케이스 파악
  3. 문제 유형 파악
  4. 문제 풀이 (IDE 활용 추천)
  5. 테스트케이스 검증
  6. 코드 제출
  • 제출 전 요구사항 다시확인하기
  • 엣지 케이스 고려하기 (input 0일 때, 데이터 중복될 때 등)
  • 시간이 남으면 다른 방법으로도 풀어보기

코딩테스트 그 이후

  • 제출한 코드는 따로 보관해두기
  • 아쉬운 점이 있었다면 꼭 다시 풀어보기 (면접에서 코테내용 물어볼 수 잇음)
  • 코딩테스트는 알고리즘 역량만을 검증
  • 이후 채용 프로세스에 합격하려면 CS, 개발 공부가 필요 (코테는 최소한의 검증)

자주 묻는 Q&A

  • 어떤 문제를?
    • 코테사이트, 공개된 기업 코테
  • 하루에 몇 문제?
    • 문제 갯수보다 시간 정하기
  • 추천할만한 책?
    • 책이 필수는 아님, 취향에 따라 선택
  • 코딩테스트 언어?
    • 언어는 중요하지 않음
  • 코테 공부 얼마나 해야 합격할 수 있을까?
    • 코테 공부에 완성은 없음
    • 공부를 시작하면서 가능한 모든 공채에 지원해보자
  • 문과/비전공자…
    • 코테만을 위한 공부를 하면 됨

코딩테스트 칠전팔기 - 신대성(아실)

  • iOS 개발자로서 이직하면서 경험당 코딩테스트에 대해

첫 이직

  • 생각보다 채용 공고는 많이 보인다
  • 이직을 위한 준비
    • 이력서, 경력기술서, 포트폴리오, 면접준비
  • 서류전형 면접전형 사이에 코딩테스트나 과제전형있음
  • 코딩테스트에서 대부분 탈락…(별도로 준비하지 않았었음)
    • 경력이직이라도 코테준비 해야한다
  • 결국 코테 안보는 회사로 이직 했지만, 만족하진 않아서 그 회사에 다니면서도 꾸준히 2~3일에 한문제는 풀었음

다시 이직

  • 풀이에 1시간이 넘어가면 그냥 솔루션보고 솔루션이 이해될 때까지 봤음
  • 그러다 다시 이직 준비 시작
  • 이력서 포폴은 이전에 만들어 둔 것에 그때 그때 업데이트 해두었음
  • 정말 가고싶은 회사에만 집중해서 이력서 넣음
  • 그리고 코테 준비에 올인 (코테에서 떨어지면 면접은 가지도 못한다)
  • 코테전 1~2주 정도 기간에는 그동안 푼 문제를 복습했음
    • 어려웠던 문제는 표시해두고 하루전날 다시 공부
  • 시험을 보니 어떤 식으로 풀어야 되겟단 감이 오거나 아예 비슷한 문제가 있음

정리

  • 코테도 채용전형이다. 시간을 투자하고 준비해야 한다.
  • 겪어본 문제가 풀기 쉽다
  • 코딩테스트의 통과가 목표다. 알고리즘 대회 우승이 아니다. 어려운 문제를 깊게 파는것보다는, 최대한 많은 문제를 경험해보자
  • 지금 당장 코테가 급하다면?
    • 알고리즘/자료구조 공부: 솔루션을 이해할 정도로
    • 그 회사의 코테 플랫폼 이용해보기
    • 쉬운 문제부터 최대한 많은 문제 풀어보기
    • 안풀리는 문제를 억지로 붙잡고 있지말고 일정 시간뒤에 솔루션을 보고 이해하자
    • 코테 인강이 큰 도움이 될 수 있다.

코딩테스트 서비스 운영자가 읽어주는 Swift 코딩테스트 통계

인사담당자가 보는 화면

  • 문제별 점수, 사용언어, 문제에 머문 시간, 유사코드 체크
  • 문제별 평균점수와 지원자의 점수
  • 제출한 횟수, 선택한 제출, 테스트케이스 통과 여부

Swift 코딩 테스트 통계

  • 프로그래머스의 리얼 통계 자료임
  • 자주 출제되는 유형
    1. 구현 (매우 높음)
    2. 문자열 (높음)
    3. 수학적 사고력 (보통)
    4. 해시 (보통)
    5. DFS, BFS (보통)
  • 문제 난이도별 출현 빈도
    • 레벨1을 100으로 뒀을 때 수치
    • 레벨1: 100 - 간단한 구현문제, 배열이나 문자열을 주로 다룸
    • 레벨2: 60 - 제한사항이 많은 구현, 완전탐색/해시 등 간단한 자료구조 지식 요구
    • 레벨3: 35 - 알고리즘 영역, DFS/BFS
    • 레벨4: 8 - 대회에 주로 사용, 코테에선 거의 안나옴, 나와도 거의 못품

해외 출제 동향

  • 지문은 쉬움 (타국인이 많기 때문)
  • 그래서인지 수학문제가 국내보다 출현빈도 높음

Leave a comment