알고리즘 문제 풀이/프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략
03) 코딩과 디버깅에 관하여 - 좋은 코드를 짜기 위한 원칙
아는개발자
2023. 5. 16. 23:50
◇ 코딩의 중요성을 간과하지 말 것.
프로그래밍 대회에서 좋은 성적을 올리기 위한 비결은 읽기 쉬운 코드를 작성하는 것이다.
◇ 좋은 코드를 짜기 위한 원칙
일반적으로 실무에서 좋은 코드의 원칙이라고 할만한 것들 또한 대부분 프로그래밍 대회에도 적용된다.
◆ 간결한 코드 작성하기
코드가 짧을수록 오타나 단순한 버그가 생길 우려가 줄어들고, 디버깅도 쉬워지기 때문.
하지만 프로그래밍 대회에서 사용이 권장되는 방식은 다음과 같다.
- 전역 변수의 광범위한 사용
- C/C++의 매크로 사용
- Java 및 C#의 foreach 구문 사용.
- 회사에서 내가 사용하는 C#의 경우 foreach를 사용할 때 그냥 for문에 비해 GC가 더 많이 불리기 때문에 실제로 잘 사용하지 않고 있지 않다.
◆ 적극적으로 코드 재사용하기
코드를 모듈화하라.
같은 코드가 N번 이상 등장한다면 항상 해당 코드를 함수로 분리해 재사용한다는 기본 원칙을 만들어도 좋다.
◆ 표준 라이브러리 공부하기
표준 라이브러리를 사용하라.
프로그래밍 대회에서 모든 코드를 직접 작성하는 것은 대표적인 시간 낭비 중 하나다.
표준 라이브러리는 셀 수 없이 많이 사용되고 검증되었기 때문에 메모리 관리나 정당성 증명에 신경 쓸 필요 없이 편하게 사용 가능.
◆ 항상 같은 형태로 프로그램 작성하기
매번 다른 코드를 작성한다면 그것을 검증하거나 디버깅의 시간이 소요될 수 있다.
그러므로 자주 작성하는 알고리즘이나 코드 등에 대해서는 한 번 검증된 코드를 작성하고 이것만을 꾸준히 사용할 필요가 있다.
◆ 일관적이고 명료한 명명법 사용하기
모호하지 않은 변수명과 함수명을 사용하는 버릇을 드리고, 사용하는 언어의 표준 라이브러리에서 사용하는 명명 규약을 익혀라.
◆ 모든 자료를 정규화해서 저장하기
같은 자료를 두 가지 형태로 저장하지 않는 것. (ex: 9/6과 3/2 등)
같은 자료가 두 개 이상의 표현을 가지게 되면 미묘한 버그들을 만들기 쉽기 때문.
◆ 코드와 데이터 분리하기
코드의 논리와 상관 없는 데이터는 분리하는 것이 좋다.