본문 바로가기

알고리즘/종만북

[종만북] 3부

좋은 코드를 짜기 위한 원칙.

간결한 코드를 작성하기: 프로그래밍 대회에서 코드를 작성할 때 첫번째 원칙은 간결한 코드를 작성하라는 것입니다. 코드가 짧으면 짧을 수록 단순한 버그가 생길 우려가 줄어들고, 디버깅도 쉬워집니다. 이 원칙은 어디에든 적용됩니다.

적극적으로 코드 재사용하기: 당장 차이점이 없더라도 항상 코드를 깔끔하게 작성하고 유지하는데 신경을 쓰다보면 스스로가 그와 같은 코드에 익숙해집니다. 간결한 코드에 익숙한 사람은 다음 번에 비슷한 코드를 짤 때 처음부터 좀더 간결하게 코딩할 수 있게 됩니다.

항상 같은 형태로 프로그램을 작성하기: 같은 코드를 작성하는 더 좋은 방법에 대해 꾸준히 고민할 필요는 있지만, 자주 작성하는 알고리즘이나 코드 등에 대해서는 한 번 검증된 코드를 작성하고 이것만을 꾸준히 사용할 필요가 있습니다.

일관적이고 명료한 명명법 사용하기: 모호하지 않은 변수명과 함수명을 사용하는 버릇을 들이고, 사용하는 언어의 표준 라이브러리에서 사용하는 명명 규약을 익힙시다. 모호한 명명법은 가끔 잡아내기 힘든 오류를 만들어 냅니다.

코드와 데이터를 분리하기: 코드의 논리와 상관없는 데이터는 분리하라. 예를들어서 나이트가 움직일 수 있는 상대 좌표는 총 여덟가지인데, 이를 직접 코드에 저장하기보다 배열로 선언하고 배열을 순회하면서 각 위치를 검사하는 쪽이 훨씬 좋습니다.

3.4 디버깅과 테스팅

  1. 작은 입력에 대하여 실행되나 확인하기: 예제 입력의 크기가 클경우 -> 사이즈 축소
  2. 단정문을 쓴다. -> 단정문이란 주어진 조건이 거짓일 때 오류를 내고 프로그램을 강제 종료시키는 함수 또는 구문을 의미한다.
  3. 프로그램의 계산 중간 결과를 출력. -> 자신이 예상하는 바와 맞아 들어가는지 검사하면 문제 발생의 범위을 좁힐 수 있다.

프로그램을 테스트할 때 유용하게 사용할 수 있는 기법 -> 스캐폴딩

스캐폴딩이란 원래 건물을 짓거나 보수할 때 공사하는 사람들이 걸어다니기 위해 설치하는 임시 구조물을 가리키는 말이다. 프로그래밍에서는 이 말을 다른 코드를 개발할 때 뼈대를 잡기 위해 임시로 사용하는 코드라는 뜻으로 많이 사용.

코드의 정당성을 확인하거나 반례를 찾는데 특히 유용하게 쓰임.

'알고리즘 > 종만북' 카테고리의 다른 글

무식하게 풀기  (0) 2022.08.06
[종만북] 개관 ~ 2부  (0) 2022.02.17