1.알고리즘이란?
건축물을 세울때 설계도와 같은 개념입니다.
우리가 서울에서 울릉도를 갈때 사람이라면 생각을 하면서 갈 수가 있습니다.
가령 아무 계획 없이 어떻게 가야 할지 계획 없이 출발 하였다고 가정 합니다.
사람이라면 여기서 출발해서 버스를 탈 것인지 전철을 탈 것인지 서울역으로 갈 것인지 강남 고속 터미널로 갈것인지...
가면서 그때 그때 생각 나는 데로 선택 해서 갈 수가 있을 것입니다.
하지만 컴퓨터에게 아무런 계획도 방법도 없이 서울에서 울릉도를 찾아 가라고 한다면 컴퓨터는 아무런 행동도 하지를 못합니다.
혹은 컴퓨터에게 걸어서 동쪽으로 쭉 가라고 한다면 가다가 바다에 빠져 죽게 될 것입니다.
이러한 일을 방지 하기 위해 우리는 미리 모든 일에 대비하여 방법을 생각 하게 됩니다.
1. 출발
2. 버스가 있나? -> 있으면 버스 타고 서울역으로
없으면 -> 전철 타고 서울역으로
3. 서울역에 도착해서 강릉에 가는 기차가 있나 ? 있으면 기차 타고 강릉으로
없으면 -> 버스 타고 강남 고속터미널 으로
이렇게 끊임없이 모든 경우의 수를 생각해서 설계를 하는 것을 알고리즘이라고 합니다.
이렇게 설계 했지만 생각 하지 않았던 조건을 만나게 되면 컴퓨터는 거기에서 멈추어 버리게 됩니다.
가령 강릉에 가서 배를 타고 가도록 설계를 하고 없어진 경우에 대비 하지 않았을 경우
강릉에 도착해 보니 울릉도에 가는 배가 없어 졌다고 한다면...
사람이라면 다른 우회 방법을 생각해서 돌아 가겠지만...
컴퓨터에는 배가 없어졌을때를 고려 하지 않았기 때문에 평생을 강릉에 머물게 있게 됩니다.
이처럼 프로그래밍을 할 때는 여러가지 모든 경우의 수를 고려 해야 됩니다.