얼마전 2024 네이버 공채에서 좋은 기회로
코딩테스트를 보게 되었다.
.
.
.
결론 부터 말하자면 결과는 안나왔지만 그냥 못 봤다.
아쉽지도 않고 실력적으로 부족한 느낌이 크게 들었다.
시험이 끝나고 생각이 들었다.
이제라도 공부를 해서 다음에 또 기회가 있다면
아쉽지 않은, 잘 했다는 느낌을 받도록 하자!
그래서 공부를 하며 실력을 키우려고 한다.
Do it! 알고리즘 코딩테스트라는 책과 함께...

※ 코딩 테스트 준비하기
책의 첫 부분에는 바로 알고리즘이 나오지 않고
코딩테스트를 잘하기 위한 핵심 요소인 시간 복잡도와 디버깅을 소개한다.
이 2가지 스킬은 코딩 테스트에서 매우 중요한 부분인데
지난 시절의 나처럼 간과하고 있는 사람이 많다...
※ 시간 복잡도
▶ 주어진 문제를 해결하기 위한 연산 횟수로
일반적으로 수행 시간은 1억 번의 연산을 1초의 시간으로 간주하여 예측한다.
(Ex. 시간 제한이 2초면 2억 번의 연산 안에 답이 나와야 한다.)
▶ 시간 복잡도를 정의하는 3가지 유형은 다음과 같다.
| 빅-오메가 (Ω(n)) | 최선일 때의 연산 횟수를 나타낸 표기법 |
| 빅-세타 (θ(n)) | 보통일 때의 연산 횟수를 나타낸 표기법 |
| 빅-오 (O(n)) | 최악일 때의 연산 횟수를 나타낸 표기법 |
이렇게 다양한 시간 복잡도 표기법이 있지만
코딩 테스트에서는 빅-오 표기법을 기준으로 수행시간을 계산하는 것이 가장 좋다.
이유는 응시자가 작성한 프로그램으로 다양한 테스트 케이스를 수행해
모든 케이스를 통과해야만 합격으로 판단하므로 최악일 때를 염두해야하기 때문이다.

※ 디버깅 (Debugging)
▶ 프로그램에서 발생하는 문법 오류나 논리 오류를 찾아 바로잡는 과정이다.
▶ 문법 오류는 컴파일러가 자동으로 해주지만
논리 오류는 코드가 사용자의 의도와 다르게 작동할 때가 많아 문제를 풀면서 반드시 해야 하는 과정이다.
▶ 디버깅을 하는 방법은 디버깅을 하고자 하는 줄에 중단점을 설정하고
사용하는 IDE의 디버깅 기능을 실행해 진행하면 된다. (연습할 때)
▶ 책에서는 디버깅 활용 사례를 설명하며
코딩 테스트를 진행하며 자주 하는 실수들을 소개하는데
유용한 정보니 관심이 있다면 찾아보길 추천한다...
'코딩테스트 > 코딩테스트 이론' 카테고리의 다른 글
| [코테 공부] 그리디 알고리즘(Greedy Algorithm, 탐욕법) (0) | 2025.02.03 |
|---|---|
| [코테 공부] 구간 합 구하기 (0) | 2024.03.26 |
| [코테 공부] 배열과 리스트 (0) | 2024.03.25 |