어떻게 정해진 순서로 문제를 풀어요
알고리즘은 어려운 말이 아니다. '문제를 푸는 정해진 순서'를 뜻한다. 라면 끓이기나 길 찾기처럼 순서를 정해 두면 누가 해도 같은 답이 나와요.
샌드위치를 만드는 순서
샌드위치를 만든다고 하자.
빵을 꺼내고, 잼을 바르고, 빵을 덮는다.
이 정해진 순서를 하나씩 밟으면 샌드위치가 완성된다.
이것이 알고리즘이에요.
다음 단계를 누를 때마다 순서가 하나씩 진행된다. 빵 꺼내기 → 잼 바르기 → 덮기 → 자르기 → 완성.
어렵게 들리던 알고리즘이 사실은 이것이다.
무엇을 먼저 하고 그다음에 무엇을 할지, 순서를 정해 둔 것.
요리법도 조립 설명서도 다 알고리즘인 셈이에요.
양말 먼저, 신발 먼저?
순서는 그냥 정해지는 것이 아니다.
양말을 신고 신발을 신으면 잘 신어진다.
하지만 신발을 먼저 신고 양말을 신으려 하면 되지 않는다.
순서가 틀리면 결과도 틀려요.
순서를 바꾸면 결과가 달라진다. 바른 순서 → 잘된다 · 뒤바뀐 순서 → 안 된다.
그래서 알고리즘에서는 순서가 정말 중요하다.
무엇을 먼저 하느냐에 따라 되기도 하고 안 되기도 하니까.
단계만 아는 것이 아니라 옳은 순서를 아는 거예요.
같은 순서, 같은 결과
정해진 순서의 힘은 여기에 있다.
나도 그 순서대로, 친구도 그 순서대로 하면 둘 다 같은 답이 나온다.
기분이나 운에 흔들리지 않고, 순서만 같으면 결과도 같아요.
같은 순서를 따르면 둘 다 같은 답이 나온다. 나 → 7 · 친구 → 7.
이것이 좋은 까닭은 믿을 수 있기 때문이다.
'이 순서대로 하면 반드시 이 답이 나온다.'
그래서 컴퓨터에게 이 순서를 적어 주면 언제나 같은 일을 해요.
둘 중 큰 수 찾기
아주 작은 알고리즘 하나를 함께 따라가 보자.
두 수 가운데 큰 것을 찾는 알고리즘이다.
'둘을 비교한다, 더 큰 쪽을 고른다.' 이 순서면 끝이다.
입력이 들어가면 답이 나와요.
입력 → 순서 → 답. 수 A 7 · 수 B 4 → 비교 → 답 7.
별것 아닌 것 같아도 이런 작은 순서가 모이고 모이면 엄청난 일을 한다.
수천 개를 줄 세우고, 원하는 것을 찾아낸다.
모두 정해진 순서의 힘이에요.
컴퓨터에게 시키려면
컴퓨터는 스스로 알아서 하지 못한다.
무엇을 어떤 순서로 할지 우리가 적어 줘야 한다.
그 순서가 바로 알고리즘이고, 잘 적어 주면 컴퓨터가 빠르고 정확하게 해내요.
순서를 알았으니 다음으로. 알고리즘 = 문제 푸는 순서 → 정렬 · 탐색 · 그 너머.
앞으로 어떤 알고리즘을 만나도 겁먹을 필요 없다.
아무리 복잡해 보여도 속은 똑같다.
무엇을 먼저 하고 그다음에 무엇을 할지 정해 둔 순서일 뿐이에요.