본문 바로가기

알고리즘

알고리즘 기본지식

프로그래밍은 결국 문제해결을 위한 수학자들이 만들어낸 도구다.


무언가를 만들어내는 마법같은것들이 아닌 여러가지 작은문제들이 모여 프로그램을 만드는것이다


소프트웨어 설계에도 각 단계들이 존재하듯이

문제해결에도 단계가있다(필수는 아니고 딱히 정해진것은 없지만 도움은 된다)

1. 문제를 이해하는것이다. 가장 중요한 단계로 문제를 제대로이해하지못하면 아무리 코딩능력이 뛰어나도 소용이없다.

2. 문제를 전산화하는것이다. 즉 문제를 컴퓨터입장에서 바꿔보는것이다.

3. 문제를 해결할 알고리즘과 자료구조를 결정한다.


4. 결정한 알고리즘과 자료구조에 오류는없는지 체크한다


5. 결정한 알고리즘과 자료구조를 코딩하여 실행한다.


6. 실행한 알고리즘이 성공하든 실패하든 1~5 단계들을 다시한번 생각해보고 개선점은 없는지 생각해본다.



그렇다면 1,4,5 단계는그렇다 치자..


2,3 단계는 어떻게 진행할것인가?


첫번째 방법으로 먼저 경험, 직관을 따른다.


경험한적없는문제고 도저히 감이 안잡힌다면 체계적인 방법을 사용해야한다


 1. 비슷한 문제를 생각해본다

 2. 단순한 방법으로 풀어본다 (재귀나 반복문반복)

 3. 수식화, 단순화, 그림을 그려본다

 4. 문제를 세분화하여 생각해본다

 5. 결과에서 입력 즉 반대로 생각해본다

 6. 기타 등등이있다.

'알고리즘' 카테고리의 다른 글

트리의 최대 지름  (0) 2017.11.21
LIS 최장 증가 수열  (0) 2017.11.15
펜윅트리로 최소값구하기  (0) 2017.08.25
소수 구하기  (0) 2016.11.19
멱집합 구하기  (0) 2016.11.17