구현이란 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정'이다.
어떻게 보면 소스코드를 작성하는 과정은 필수이므로 구현 문제 유형은 모든 범위의 코딩 테스트 문제 유형을 포함하는 개념이라고 보면 된다.
구현하기 어려운 문제란?
- 대체로 사소한 조건 설정이 많은 문제일수록 코드로 구현하기 어려움
구현 문제를 풀기 위해서는?
- 문법의 정확한 숙지
- 라이브러리 사용 경험
알고리즘 구현의 단계
- 문제 이해하기
- 알고리즘 설계하기
- 알고리즘 작성하기
- 테스트 및 디버깅
- 분석 및 최적화
알고리즘의 효율성은 대게 시간 복잡도와 공간 복잡도로 측정된다. 시간 복잡도는 알고리즘이 문제 해결하는 데 걸리는 시간을, 공간 복잡도는 필요한 메모리 공간을 의미한다.
특히, C/C++/Java에서 구현 유형 문제가 더 어렵게 다가온다.
문자열을 처리하거나 큰 정수를 처리하는 문제가 출제되는 경우가 많은데 C/C++/JAVA에서는 문자열 처리가 파이썬에 비하여 까다롭고, 큰 정수를 처리하는 라이브러리를 별도로 사용하기 때문이다.
나는 특히 알고리즘적 사고에 다소 부족함을 느끼기 때문에 구현 문제를 많이 풀어보며 올바른 접근 방식에 대한 감각을 키우는 것이 중요하다고 생각이 든다.
'Algorithm' 카테고리의 다른 글
깊이 우선 탐색 DFS (0) | 2024.01.30 |
---|---|
정렬 (1) | 2024.01.14 |