알고리즘을 공부해야하는 이유


알고리즘을 공부해야하는 이유 

-좋은프로그램을 만들기위해

-프로그램을 평가하기 위해

-프로그램을 효율적으로 작성하기위해

-프로그래밍 기술을 향상시키기 위해


알고리즘은 프로그램을 설계할때 사용된다.

좋은 프로그램이란 무엇인지 생각해보자.


좋은 프로그램이란?

속도가 빨라야하고 효율적으로 구동되고 범용성이 높아야한다.


범용성이란?

어떤 제약 조건도 없이 넓은 분야에 응용할 수 있는 성질이라고 생각하면된다,


속도,효율,범용성은 여러사람이 같은 프로그램을 설계하더라도

사람마다 알고리즘이 다르기때문에 각각 차이가 난다.


위에서 말한것처럼 좋은 알고리즘은 좋은 프로그램을 만든다.

간단하면서 당연한 알고리즘을 공부해야하는 이유이다.


알고리즘을 공부하는 방법

알고리즘을 공부한다는 것은 잘알려진 알고리즘을 분석하고 파악하는것으로

시작하는게 좋다.


아무것도 모르는 상태에서 알고리즘을 만들어내는건 쉽지않다.

즉, 알려진 알고리즘을 분석하고 파악하면 머릿속에 개념이 잡힐것이고

또 일부내용을 이용하거나 수정하여 사용할 수 있다.


알고리즘의 조건

-정확한 결과 얻기

알고리즘은 문제를 해결하기 위한 절차인데 문제가 해결될려면 정확한 결과가 나와야한다.

-종료

INPUT을 통해 OUTPUT을 가져올려면 프로그램은 마무리 지어져야한다.

중간에 무한루프에 빠져 종료되지않으면 알고리즘으로 볼 수 없다.


참고문헌 -처음만나는 알고리즘

알고리즘이란?


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

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


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

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


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

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

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


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

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

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


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

으로 생각하면 된다.


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

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


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


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

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


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

1. 알기쉽다.

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

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


2. 속도가 빠르다.

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


3. 효율적이다.

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

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


4. 재이용하기 쉽다.

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

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

+ Recent posts