코딩테스트/코딩 테스트 합격자 되기 : 자바편

[코딩 테스트 합격자 되기 : 자바 편] 1. 코딩 테스트 사전 준비 - [부제] Python에서 Java로 바꾸는 사람 나야나

yujinius 2024. 5. 31. 14:25

 

코딩 테스트 사전 준비에 앞서 생각해야 할 것들

  1. 다른 사람 풀이 보고 접근 방식 확인하기
  2. 충분한 시간 들여 문제 분석하면서 예외 테스트 케이스 추가하기

아는 것과 모르는 것을 명확하게 하기

  1. 문제를 풀지 못했어도 그전까지는 기록해 두기
  2. 시간을 정해두고 시험 보듯 공부하기
  3. 꾸준히 하기
  4. 이해 후 나마의 언어로 요약하기

언어 활용할 때 기억해야 할 것

  • 이는 나처럼 언어를 변경할 때 빠르게 확인을 해야 하는 부분들이다. 
  1. 변수 선언
  2. 함수 정의
  3. 컬렉션 자료형 다루기
  4. 조건문, 반복문 사용하기

문제 분석 연습하기

  • 전체 시간의 50~60%를 문제 분석에 쓰기
  1. 문제를 쪼개서 분석 - 동작 단위로 쪼개어 분석
  2. 제약 사항 파악하고 테스트 케이스 추가
  3. 입력값 분석 - 입력값 크기 확인
  4. 그리디 하게 접근할 때는 근거를 명확하게
    • 그리디: 현재 상황에서 가장 유리해 보이는 선택을 하는 것
    • 코테 처음 공부할 때 자주 하는 실수: 그리디 하게 풀리지 않은 문제를 그리디 하게 접근하는 것
    • 동전 예시 ★
      • 10, 50, 150, 200원 잔돈이 있고 300원을 받았을 때
      • 200원 = 150원 x N개 식을 만족하는 자연수 N이 없으므로 그리디 한 방법이 정답이 되지 않음
      • 이러한 경우 완전 탐색으로 접근해야 함
      • 완전 탐색: 모든 경우의 수를 다 따지는 것
    • 그리디는 반드시 수학적, 논리적으로 정답이 나올 수 있을지 검토한 후에 사용하기
  5. 데이터 흐름, 구성 파악하기
    • 삽입, 삭제 빈번하게 일어나는 경우 최소, 최댓값 반복해서 구해야 한다면 ⇒ 힙 자료구조 사용
    • 입력값이 50개 미만, 입력값을 깔끔하게 정리하기 어렵다면 ⇒ 하드코딩 고려하기도 함
    • 데이터 값의 차이가 크면 데이터 값 자체를 인덱스로 활용하는 것 피하기 ⇒ 메모리 낭비

의사 코드로 설계하는 연습하기

  • 의사 코드: 프로그램의 논리를 설명하고 알고리즘을 표현하기 위해 작성한 일종의 지침
    • 원칙 1: 프로그래밍 언어로 작성하면 안 됨
    • 원칙 2: 일반인도 이해할 수 있는 자연어로 작성해야 함
    • 원칙 3: 일정한 형식이 없음(자유롭게 작성)
  1. 세부 구현이 아닌 동작 중심으로 작성
  2. 문제 해결 순서로 작성
  3. 충분히 테스트하기 (구현 전 마지막 단계)

기억하기

  1. 제약사항을 잘 파악하고 이를 확인할 수 있는 테스트 케이스를 작성하면 문제 풀이 시간을 크게 단축시킬 수 있음
  2. 그리디로 풀어야 할 문제와 완전 탐색으로 풀어야 할 문제 정확히 구분
  3. 입력값을 분석하면 문제에서 요구하는 알고리즘의 시간 복잡도를 간접적으로 파악 가능

나의 상황

  • Python으로 코딩 테스트를 매우 가끔 풀 일이 있을 때만 풀다가, 취업을 준비함에 앞서 직무 언어와 맞추기 위해 Java로 변경
  • 안드로이드, 백엔드 공통집합인 Java를 우선으로 하고 안드로이드에서 코틀린이 필요할 경우 그때 맞춰 문법 공부할 계획
  • 자바를 잘 써오기는 했으나 코테에 적합한 문법 구사를 다시 재정립할 필요성이 있음
  • 코테 의사 코드로 설계하는 것은 다른 코드 작성 때에도 잘하고 있던 습관
  • 문제를 분석하고 설계하는 데에 시간을 투자하지 않고 구현하면서 생각했었는데, 설계에 더 시간을 투자해야겠음.

 

기본기부터 다시 차근차근 쌓아 올리기

 

 

 

 

해당 글은 다음 책을 참고하여 공부하며 정리한 글입니다. 

https://ebook-product.kyobobook.co.kr/dig/epd/ebook/E000006973689

 

코딩 테스트 합격자 되기: 자바 편 | 김희성 | 골든래빗(주)- 교보ebook

자료구조, 알고리즘, 빈출 97 문제로 대비하는 코테 풀 패키지(모의고사, 엄친아 손노트, 온라인 학습 지원 제공) , ★ 빈출문제 97개면 코딩 테스트 합격할 수 있어요! ★ 자료구조, 알고리즘 이론

ebook-product.kyobobook.co.kr