알고리즘 문제를 풀 때 구현은 핵심적인 요소이다. 구현이란 주어진 문제를 실제 코드로 옮기는 작업을 의미한다. 정확한 구현이 이루어지지 않으면 프로그램이 제대로 동작하지 않거나 원하는 결과를 얻을 수 없다.
성공적인 구현을 위해서는 문제를 정확히 이해하고 입출력 형식을 파악해야 한다. 동시에 예외 상황 처리와 변수의 범위도 세심하게 고려해야 한다.
구현의 핵심은 간결하고 명확한 코드 작성이다. 변수명과 함수명은 직관적으로 짓고, 불필요한 반복문이나 조건문은 최소화하여 가독성을 높여야 한다.
또한, 효율적인 코드 작성도 중요하다. 시간 복잡도와 공간 복잡도를 고려하여 알고리즘을 설계하고, 최적화된 코드를 작성해야 한다.
알고리즘 문제 해결에서 구현 능력은 연습을 통해 향상된다. 다양한 문제를 풀어보고 다른 사람의 코드를 분석하는 것이 실력 향상에 도움이 된다.
100줄짜리 코드가 1000줄짜리 코드보다 읽기 쉽다. 단, 가독성을 해치면서까지 줄이진 말자.
코드를 모듈화하자. 실무만큼은 아니더라도 적절한 모듈화는 디버깅과 코드 흐름 파악에 도움이 된다.
라이브러리에서 지원하는 자료구조는 우리가 직접 구현한 것보다 항상 더 빠르다.
표준 라이브러리는 수많은 사용과 검증을 거쳤기에 메모리 관리나 정당성 증명을 걱정할 필요가 없다.
새로운 알고리즘이나 처음 보는 형태의 문제에서만 다양한 스타일을 시도해보자. 대회 참가자로서는 매번 코드를 검증하기 어렵다. 이미 검증된 코드 형태를 사용하면 도구가 아닌 문제 해결에 집중할 수 있다.
변수명과 함수명을 명확하게 짓는 것만으로도 디버깅이 쉬워지고 실수가 줄어든다.
자료는 헷갈리지 않도록 하나의 단위로 저장하자.
예를 들어 x축과 $(\sqrt{3},-1)$사이의 각도는 -30도, 330도, 690도로 표현할 수 있다. 각도를 하나의 표준 형식으로 통일하지 않으면 각도 관련 함수 작성이 복잡해진다.