알고리즘 문제해결 전략 (1)

DA가 되기 위해 개발자 3년 이상 경력을 쌓고자

프로그래밍에 대해 깊게 공부하고자 알고리즘 공부를 시작.

하지만 책의 예제가 C++이라는게 단점.



3.1 도입 : 코딩의 중요성을 간과하지 말라

코딩 능력이 가장 중요하고 읽기 쉬운 코드를 작성해야 한다.
간결하고 효율적인 프로그램을 작성해야 한다.

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

1)간결한 코드를 작성
전역변수를 많이 사용하지 말자.
매크로를 사용해 간결한 코드를 작성.(프로그래밍 대회에서만!)

2)적극적으로 코드를 재사용
간결한 코드를 작성하기 위한 가장 직접적인 방법은 코드를 모듈화하는 것.
같은 코드가 반복된다면 이들을 함수나 클래스로 분리해 재사용한다.
이상적인 코딩은 한 함수가 두 가지 이상의 일을 해서는 안된다고 한다.
(ex 입력을 처리하기 쉬운 형태로 바꾸는 함수, 입력을 읽어들이는 함수 등)
하지만 대회에서는 엄격하게 원칙을 따르지는 못한다.

3)표준 라이브러리 공부
언어의 문자열, 동적 배열, 큐, 리스트, 연관배열 등의 자료구조 , 그리고 정렬 등의 표준적인 알고리즘 구현 사용법을 반드시 잘 알아 두기를 권한다.

4)항상 같은 형태로 프로그램 작성
자주 작성하는 알고리즘이나 코드 등에 대해서는 한 번 검증된 코드를 작성하고 이것만을 꾸준히 사용할 필요가 있다.
for문을 애용하다가 다른 코드에서는 while문을 쓰고 do-while 문을 쓰며 계속 바꾸는 것은 좋지 않다.

5)일관적이고 명료한 명명법 사용
실무에서 int a,b,c 이런 변수 명명법을 사용한다면 낙제감이다.
상황에 알맞는 변수 이름과 함수 이름을 사용하는 것이 좋다.

6)모든 자료를 정규화해서 정의
PASS

7)코드와 데이터를 분리
코드의 논리와 상관없는 데이터는 가능한 한 분리하는 것이 좋다.
예를 들어, string getMonthName(int month){
                   if(month == 0) return "January"; .... } 보다
             const string monthName[] = {......}로 코드 양을 줄여서 실수 하지 않게 해야한다.

댓글

이 블로그의 인기 게시물

윈도우 설치에서 파티션 설정 오류(NTFS)

[exploit writing] 1_스택 기반 오버플로우 (1) First

하둡 설치 오류 정리