알고리즘이란?


'문제나 과제를 해결하기 위한 처리 절차를 

구체적인 순서에 따라 표현한 아이디어나 생각'을 말한다.


위에서 말했던 알고리즘은 아이디어나 생각이라고 말했었는데

아이디어나 생각은 전달할 수 없기에 눈에 보이도록 표현해야 한다.


알고리즘을 어렵게 생각할 필요가 없다.

단어만 어색할 뿐이지 우린 알고리즘을 어디서든 적용하고 있었다.

일상생활에 쓰는 음식레시피, 가구 조립설명서 등도 알고리즘의 예(시각화)로 볼 수 있기 때문이다.


음식 레시피를 검색해보면 블로그 등에서 사진을 조리법 순서대로 나열한 걸 볼 수 있다.

즉, 요리를 완성하기 위한 절차알고리즘이라 하고

음식 레시피는 그 절차를 순서에 따라 표현한 시각적으로 표현한 것이다.


INPUT(음식 재료) -> 알고리즘(조리법) -> OUTPUT(완성된 음식)

으로 생각하면 된다.


위 음식 조리 알고리즘을 음식 레시피로 만든 것처럼

알고리즘을 프로그래밍언어(C, JAVA등)로 만들면 프로그램이 된다.


프로그램을 작성할 땐 기획, 설계 순으로 진행되는데


고객의 요구에 의해 기획하고 설계할 때 필요한 것이 알고리즘이다.

우리가 만들 프로그램의 설계서를 만든다고 생각하면 된다.


설계하게 될 때 좋은 알고리즘은 4가지를 충족해야 한다.

1. 알기쉽다.

-여러 명이 작업할 때 이해하기 어렵다면 실수가 생기기 마련이다.

또한 혼자서 한다 해도 수정, 추가에 어려움이 있을 수 있다.


2. 속도가 빠르다.

-INPUT, OUTPUT이 같다 해도 처리하는 시간은 현저히 다를 수 있다.


3. 효율적이다.

-같은 작업을 10명이 하는 것과 1명 이서하는 것이 같다면

1명 이하는 로직을 선택하면 9명은 다른 일을 할 수 있다.


4. 재이용하기 쉽다.

-프로그래밍은 한번 만들고 사용하지 않는 것이 아니기 때문에

다른 곳에서 쉽게 재이용 할 수 있도록 만드는 게 좋다.

+ Recent posts