관리자 글쓰기

 Algorithm. 알고리즘은 간단하게 얘기하면 문제를 해결하는 절차이자, 문제의 처리 방법을 체계적으로 기술한 것입니다.

알고리즘은 궁극적으로 컴퓨터가 효율적으로 문제를 해결하도록 최적의 프로그램을 작성하는 것이 목표입니다.

 

 

 프로그램이란 실제 세계를 컴퓨터가 이해할 수 있는 형태로 매핑한 것을 의미합니다. 예를들어 '줄을 서 있는 사람들'을 컴퓨터 내에서 '대기열'로 표현할 수 있습니다. 이를 추상화라고 합니다.

 

 추상화(abstraction)는 문제 해결을 위해 복잡한 문제를 단순화 시키고, 다른 문제에도 적용할 수 있게 하는 것입니다. 여기서 추상 자료형(ADT)이라는 개념이 나옵니다. 어떠한 자료의 특성을 논리적으로 추상화하여 정의한 자료형을 추상 자료형이라고 합니다. 이렇게 얘기하면 복잡할 수 있지만 쉽게 예를 들 수 있습니다.

 

 '정수'라는 것은 소숫점 이하 자리수 없이 표현되는 숫자입니다. 이 숫자는 늘어나기도 (+) 줄어들기도 (-) 합니다. 이는 실생활에서 사람의 수나 물건의 개수가 늘어나고 줄어드는 것에 대한 추상화입니다.

 

 

 알고리즘은 앞서 얘기했듯, 최적의 프로그램을 작성하는 것이 목표입니다. 그리고 프로그램은 실제 세계를 컴퓨터가 이해할 수 있는 형태로 바꾼 것(추상화)입니다. 즉, 알고리즘을 공부한다는 것은 이미 많은 사람들이 만들어놓은 추상 자료형을 이해하고, 새로운 문제 해결을 위하여 기존 추상 자료형을 조합하여 새로운 추상 자료형을 정의할 수 있는 능력을 확보하는 것입니다.