여러가지 자료로 살펴볼 수 있는 알고리즘의 의미가 있다.
알고리즘은 먼저 어원을보면 9세기 페르시아의 수학자인 무하마드 알콰리즈미의 이름을 라틴어화한 algorismus에서 따온 말입니다.
알고리즘의 어원은 수학자의 이름이며 숫자를 다룬다는 점을 연상시키려는 의도를 담았다.
국립국어원에서는 어떤 문제의 해결을 위해 입력된 자료로 토대로 하여 원하는 출력을 유도하여 내는 규칙의 집합이다. 여러단계의 유한집합으로 구성되며, 각 단계는 하나 또는 그 이상의 연산을 필요로 한다고 적혀있다.
즉 알고리즘은 규칙이나 연산을 연상시킨다.
알고리즘을 만드는 방법은 특별한 재능을 가져야만 만들수 있는것은 아니다. 기본적인 알고리즘을 몇 가지 기억하고 요령을 터득한후 이를 으용하여 다양한 문제를 푸는 알고리즘을 만드는 것이다. 영감을 얻으려면 기초를 알고 경험하는것이 중요하다.
지금부터 설명한 내용은 입사면접에도 나오고 영화에도 주로 나온다.
"3리터 통과 5리터 통을 가지고 물 4리터를 담기위해서는 어떻게하면 좋은가?"
만약 한번에 4리터를 얻을려고 한다면 경험이 없다고 생각한다. 컴퓨터는 한 번의 처리만으로 답을 얻을 수 있는 문제는 거의 없습니다. 대부분 여러번의 시도끝에 처리를 거듭하여 간신히 답을 얻을 수 있는 문제들이다.
여기서 차근차근 처리를 거듭할려면 내용을 구분해야 합니다. 여기에도 경험이 필요합니다. "통으로 물을 길어봐야하고, 다른 통으로 물을 옮겨봐야하고 통에 들어 있는 물을 버리기도 해봐야한다. 답을 바로 얻지 못해도 우리는 천천히 처리를 진행해야한다.
이러한 예는 컴퓨터로 푸는 문제는 아니지만 컴퓨터 알고리즘과 공통되는 부분이 있습니다. 처리가 진행될때 꾸준히 숫자의 변화를 따라가는것이다. 이것을 추적이라고 하는데 앞의 예처럼 보통 숫자의 변화를 종이 위에 적거나, 이 변화를 머릿속으로 계산하니 적당한 표현이라고 할 수 있다.
컴퓨터 알고리즘은 처리할때 어떤 기능을 이용하는지 알아둘 필요가 있다. 사실 많진 않습니다. 입력, 기억, 연산, 출력이라는 네가지로 볼수있다. 이것이 컴퓨터가 하는 전체입니다. 어떤 컴퓨터이든 입력장치, 기어장치, 연산장치, 출력장치로 구성됩니다. 이러한 기능을 종합적으로 관리하는 제어장치를 추가해 컴퓨터 5대장치라고 부릅니다.
pc에서는 키보드와 마우스가 입력장치이고, 메모리나 하드디스크는 저장장치입니다. cpu가 제어장치 및 연산장치를 겸하고 모니터와 프린터는 출력장치입니다. 그리고 제어장치가 프로그램의 내용을 분석하여 실행하면 그에 맞게 입력장치, 기억장치, 연산장치, 출력장치가 작동합니다.
따라서 프로그램에 작성하는 처리는 필연적으로 입력,기억,연산,출력 4개뿐이다. 즉, 컴퓨터 알고리즘은 4개의 처리를 생각하기만 하고 이때 입력한 데이터를 기억,연산,저장,출력할때 기억은 기본적으로 당연한것이기에 입력,연산,출력 3개만 생각해도 좋습니다.
이진검색 알고리즘 (0) | 2022.03.20 |
---|---|
반복문과 배열의 기본 (0) | 2022.03.20 |
알고리즘 워밍업 (0) | 2022.03.20 |
알고리즘 설명 방법 (0) | 2022.03.20 |