본문 바로가기
프로그래밍/알고리즘

알고리즘 시작 - 문제 해결 전략

by wahu 2017. 6. 4.

문제 해결 개관

문제 해결 능력을 기르기 위해 단순히 문제를 푸는 과정만을 반복하는 것이 아니라, 문제를 해결해가는 과정을 세분화하여 부분 부분 부족한 부분을 채워 나가는 형식이 되어야 한다.


문제 해결 과정 네 단계(From 어떻게 문제를 풀 것인가)

1. 문제를 이해한다.

2. 어떻게 풀지 계획을 세운다.

3. 계획을 수행해서 문제를 해결한다.

4. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다.


여섯 단계 문제 해결 알고리즘

1. 문제를 읽고 이해한다.

문제를 정확히 이해하는 것이 중요하다.

2. 문제를 익숙한 용어로 재정의한다.

3. 어떻게 해결할지 계획을 세운다

4. 계획을 검증한다.

5. 프로그램으로 구현한다.

6. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다


문제 해결 전략

1. 직관과 체계적인 접근

* 체계적인 접근을 위한 질문들

- 비슷한 문제를 풀어본 적이 있는가?

- 단순한 방법에서 시작할 수 있을까?

- 내가 문제를 푸는 과정을 수식화할 수 있을까?

- 문제를 단순화할 수 없을까?

- 그림으로 그려볼 수 있을까?

- 수식으로 표현할 수 있을까?

- 문제를 분해할 수 있을까?

- 뒤에서부터 생각해서 문제를 풀 수 있을까?

- 순서를 강제할 수 있을까?

- 특정 형태의 답만을 고려할 수 있을까?


코딩의 중요성

1. 읽기 쉬운 코드를 작성하라(간결하고 효율적인 프로그램을 작성)


좋은 코드를 짜기 위한 원칙(프로그래밍 대회에서)

1. 간결한 코드를 작성하기

- 간결한 코드는 디버깅 시간을 짧게 만들어준다.

2. 적극적으로 코드 재사용하기

3. 표준 라이브러리 공부하기

4. 항상 같은 형태로 프로그램 작성하기

- 자주 작성하는 알고리즘이나 코드 등에 대해서는 한 번 검증된 코드를 작성하고 이것만을 꾸준히 사용할 필요가 있다.

5. 일관적이고 명료한 명명법 사용하기

- 모호하지 않은 변수명과 함수명 사용하기

- 사용하는 언어의 표준 라이브러리에서 사용하는 명명 규약 익히기(네이밍 컨밴션)

6. 모든 자료를 정규화해서 저장하기

7. 코드와 데이터를 분리하기



참조

프로그래밍 대회에서 배우는 알고리즘 문제해결전략/구종만 지음/인사이트

'프로그래밍 > 알고리즘' 카테고리의 다른 글

재귀 - 순열, 조합  (0) 2020.04.04
알고리즘 공부 사이트  (0) 2019.03.03
알고리즘 평가 기준  (0) 2017.06.30

댓글