
코딩 테스트 사전 준비에 앞서 생각해야 할 것들
- 다른 사람 풀이 보고 접근 방식 확인하기
- 충분한 시간 들여 문제 분석하면서 예외 테스트 케이스 추가하기
아는 것과 모르는 것을 명확하게 하기
- 문제를 풀지 못했어도 그전까지는 기록해 두기
- 시간을 정해두고 시험 보듯 공부하기
- 꾸준히 하기
- 이해 후 나마의 언어로 요약하기
언어 활용할 때 기억해야 할 것
- 이는 나처럼 언어를 변경할 때 빠르게 확인을 해야 하는 부분들이다.
- 변수 선언
- 함수 정의
- 컬렉션 자료형 다루기
- 조건문, 반복문 사용하기
문제 분석 연습하기
- 전체 시간의 50~60%를 문제 분석에 쓰기
- 문제를 쪼개서 분석 - 동작 단위로 쪼개어 분석
- 제약 사항 파악하고 테스트 케이스 추가
- 입력값 분석 - 입력값 크기 확인
- 그리디 하게 접근할 때는 근거를 명확하게
- 그리디: 현재 상황에서 가장 유리해 보이는 선택을 하는 것
- 코테 처음 공부할 때 자주 하는 실수: 그리디 하게 풀리지 않은 문제를 그리디 하게 접근하는 것
- 동전 예시 ★
- 10, 50, 150, 200원 잔돈이 있고 300원을 받았을 때
- 200원 = 150원 x N개 식을 만족하는 자연수 N이 없으므로 그리디 한 방법이 정답이 되지 않음
- 이러한 경우 완전 탐색으로 접근해야 함
- 완전 탐색: 모든 경우의 수를 다 따지는 것
- 그리디는 반드시 수학적, 논리적으로 정답이 나올 수 있을지 검토한 후에 사용하기
- 데이터 흐름, 구성 파악하기
- 삽입, 삭제 빈번하게 일어나는 경우 최소, 최댓값 반복해서 구해야 한다면 ⇒ 힙 자료구조 사용
- 입력값이 50개 미만, 입력값을 깔끔하게 정리하기 어렵다면 ⇒ 하드코딩 고려하기도 함
- 데이터 값의 차이가 크면 데이터 값 자체를 인덱스로 활용하는 것 피하기 ⇒ 메모리 낭비
의사 코드로 설계하는 연습하기
- 의사 코드: 프로그램의 논리를 설명하고 알고리즘을 표현하기 위해 작성한 일종의 지침
- 원칙 1: 프로그래밍 언어로 작성하면 안 됨
- 원칙 2: 일반인도 이해할 수 있는 자연어로 작성해야 함
- 원칙 3: 일정한 형식이 없음(자유롭게 작성)
- 세부 구현이 아닌 동작 중심으로 작성
- 문제 해결 순서로 작성
- 충분히 테스트하기 (구현 전 마지막 단계)
기억하기
- 제약사항을 잘 파악하고 이를 확인할 수 있는 테스트 케이스를 작성하면 문제 풀이 시간을 크게 단축시킬 수 있음
- 그리디로 풀어야 할 문제와 완전 탐색으로 풀어야 할 문제 정확히 구분
- 입력값을 분석하면 문제에서 요구하는 알고리즘의 시간 복잡도를 간접적으로 파악 가능
나의 상황
- Python으로 코딩 테스트를 매우 가끔 풀 일이 있을 때만 풀다가, 취업을 준비함에 앞서 직무 언어와 맞추기 위해 Java로 변경
- 안드로이드, 백엔드 공통집합인 Java를 우선으로 하고 안드로이드에서 코틀린이 필요할 경우 그때 맞춰 문법 공부할 계획
- 자바를 잘 써오기는 했으나 코테에 적합한 문법 구사를 다시 재정립할 필요성이 있음
- 코테 의사 코드로 설계하는 것은 다른 코드 작성 때에도 잘하고 있던 습관
- 문제를 분석하고 설계하는 데에 시간을 투자하지 않고 구현하면서 생각했었는데, 설계에 더 시간을 투자해야겠음.
기본기부터 다시 차근차근 쌓아 올리기
해당 글은 다음 책을 참고하여 공부하며 정리한 글입니다.
https://ebook-product.kyobobook.co.kr/dig/epd/ebook/E000006973689
코딩 테스트 합격자 되기: 자바 편 | 김희성 | 골든래빗(주)- 교보ebook
자료구조, 알고리즘, 빈출 97 문제로 대비하는 코테 풀 패키지(모의고사, 엄친아 손노트, 온라인 학습 지원 제공) , ★ 빈출문제 97개면 코딩 테스트 합격할 수 있어요! ★ 자료구조, 알고리즘 이론
ebook-product.kyobobook.co.kr
'코딩테스트 > 코딩 테스트 합격자 되기 : 자바편' 카테고리의 다른 글
| [코딩 테스트 합격자 되기 : 자바 편] 5. 배열(Array), ArrayList 기본 문법 개념 정리 (0) | 2024.06.03 |
|---|---|
| [코딩 테스트 합격자 되기 : 자바 편] 4. 코딩 테스트 Java 필수 문법 (2) | 2024.05.31 |
| [코딩 테스트 합격자 되기 : 자바 편] 2. 프로그래머스 채점 기준 + 3. 알고리즘의 효율 분석 (0) | 2024.05.31 |