알고리즘(algorithm)은 주어진 문제를 논리적으로 해결하기 위해 필요한 절차, 방법, 명령어들을 모아놓은 것입니다.
넓게는 사람 손으로 해결하는 것, 컴퓨터로 해결하는 것, 수학적인 것, 비수학적인 것을 모두 포함한답니다.
예를 들어 봅시다.
명희가 이렇게 물었습니다. "이번주 학원 숙제 다 했어?" 이에 영희는 "응. 다 했어."라고 대답합니다.
명희가 한 문장으로 간단하게 물어봤지만 영희는 그 말속에 '수학 문제 풀어오기, 국어 글짓기, 영어 단어 외워오기'가 포함되어 있음을 알고 있습니다.
이처럼 사람은 그 말속에 포함되어 있는 의미까지 이해할 수 있습니다. 하지만 컴퓨터는 그렇지 못합니다.
정확하게 무엇을 해야 할지 처리 내용과, 처리 순서를 모두 구체적으로 알려 주어야만 제대로 명령을 수행합니다. 그렇기 때문에 프로그램에 알고리즘이 필요한 것입니다.
알고리즘은 이 명령을 수행한 다음에는 무슨 일을 처리하고, 그 다음에는 어떤 파일들을 모아서 어떻게 처리해야 할지, 구체적으로 명령의 내용과 순서, 처리 방법을 모아놓은 것입니다.
알고리즘은 어떻게 구성하는가에 따라 같은 문제를 풀더라도 오래 걸릴 수도 있고, 오류가 생길 수도 있으므로 효율적이고, 명확하게 만드는 것이 중요합니다.
프로그램을 만드는 전체 과정에서 볼 때, 알고리즘을 짜는 것은 계획단계라고 할 수 있습니다.
프로그램이 어떻게 행동할지를 결정해 주는 이 계획이 완성되면 알고리즘 계획이 그것을 프로그램 언어로 작성하여 소프트웨어를 완성하는 것입니다.
댓글 영역