코딩 테스트 연습은 아주 길고 지루할 수 있습니다.
이 긴 과정을 아무렇게나 할 수는 없는 법이죠.
전 이 긴 과정도 어떻게든 줄이기 위해 5가지 방법을 사용합니다.
1. 기록하기
바라보기만 해서는 문제를 해결할 수 없습니다.
그렇기 때문에 문제를 정리해보고 사고 과정을 기록하는 것이 중요합니다.
2. 시험처럼 연습하기
주기적으로 시간을 정해서 시험처럼 연습하는 것도 도움이 됩니다.
시간을 제한하고 목표를 정하면 집중력이 올라가고 효율도 좋아집니다.
3. 길게 보기
00에서 적었듯이 결국 연습 없이 빠르게 실력이 늘기 어렵습니다.
절대 조급해지지 말고 길게 가는 것이 중요합니다.
하지만 막막하다면 목표를 세분화해서 짧은 목표를 여러개로 만들어 보는게 좋습니다.
4. 내가 이해되게 요약하기
아주 중요합니다.
요약이라는 것은 내가 봐야하는 것이기 때문에 본인의 언어로 적는 것이 중요합니다.
여기까지가 연습하는 과정 자체에 대한 방법이라면
이제 코딩테스트 문제 연습 방법에 대해도 알아봐야겠죠?
1. 문제를 쪼개기
문제는 보통 깁니다.
조건을 잘 파악하기 위해 쪼개는 것이 중요합니다.
2. 제약 사항 파악하기
문제의 제약사항도 답을 알려주는 가이드가 될 수 있습니다.
어떤 알고리즘을 사용해야 할지에 대한 가이드가 되기 좋죠.
제약 사항에 맞춰서 테스트 케이스를 준비하는 것도 좋은 방법입니다.
3. 입력값 분석하기
입력값의 개수가 가장 큰 단서입니다.
개수에 따라 시간 복잡도에 영향이 가기 때문에 사용가능한 알고리즘이 달라지겠죠.
4. 핵심 키워드 파악하기
문제에서 원하는 알고리즘은 문제 안에 있을 수도 있습니다.
예를 들어 최적의 해와 같은 유사한 키워드는 너비 우선 탐색 알고리즘을 원하는 것이라고 볼 수 있습니다.
너비 우선 탐색 알고리즘 자체가 최적의 해를 구하려고 있는 알고리즘이니까요.
결국 문제를 잘 파악해야 합니다.
5. 데이터 흐름과 구성 파악하기
데이터가 얼마나 변경되는 지에 따라 스택, 힙, 하드코딩 등 다양한 방법이 사용가능합니다.
적절한 자료 구조를 사용하는 것이 좋겠죠.
6. 의사코드 사용하기
코드로 구현하기 전 대략적인 개요를 의사코드로 적는 것이 중요합니다.
동작과 문제 해결 순서 중심으로 본인의 언어로 적어서 테스트 해보는 게 좋은 방법입니다.
마무리
사실 뭐 시작도 안했는데 말만 많았네요.
다음 글은 진짜 알고리즘 다루겠습니다. ㅎ
'CodeTest > Algorithm' 카테고리의 다른 글
03. 파이썬 코딩테스트 기본 문법 - 1 (0) | 2024.08.13 |
---|---|
02. 시간복잡도 (0) | 2024.07.25 |
00. 코딩테스트를 하는 법 (0) | 2024.07.25 |