알고리즘이란?
알고리즘은 명령을 정확한 순서로 늘어놓은 거예요 — 누가(컴퓨터든 로봇이든) 따라 해도 같은 결과가 나오도록. 아래에서 직접 명령을 쌓아 로봇을 움직여 볼까요?
로봇 길찾기 — 명령을 순서대로 쌓아 봐요
방향 버튼으로 명령을 순서대로 쌓고, '실행'을 눌러 로봇을 ⭐까지 데려가 보세요.
내가 쌓은 명령의 순서대로 로봇이 움직여요. 이렇게 명령을 정확한 순서로 늘어놓은 것이 바로 알고리즘이에요.
이 로봇 길찾기를 더 여러 단계로 즐기고 싶다면 코딩 로봇에서 순차 · 반복 · 조건 · 함수까지 이어서 만나 봐요.
모호 vs 정확 — 어느 쪽이 별에 닿을까?
같은 로봇, 같은 별. 그런데 지시 방법이 달라요. 두 쪽을 모두 실행해 어느 쪽이 ⭐에 닿는지 봐요.
"별 쪽으로 가"
↑ ↑ ↑ ↑ → → → →
컴퓨터·로봇은 '대충'을 못 알아들어요. 그래서 알고리즘은 한 칸씩 정확한 명령이어야 해요.
입력 → 처리 → 출력 — 알고리즘의 공통 모양
거의 모든 알고리즘은 받아서(입력) → 처리하고 → 내놓는(출력) 모양이에요. 칩을 바꿔 눌러 봐요.
문제가 라면이든 숫자든 달라도, 입력 → 처리 → 출력 틀은 똑같아요.
세 블록 맛보기 — 카드를 눌러 뒤집어 봐요
모든 알고리즘은 딱 세 블록의 조합으로 만들어져요. 카드를 눌러 어떤 블록인지 살짝 들여다봐요.
한 걸음 더 — 좋은 알고리즘의 기준, 요건, 세 블록의 정식 이름
본문만으로 챕터는 완결돼요.
아래는 한 걸음 더 들어가고 싶은 친구를 위한 보너스예요.
1. 좋은 알고리즘의 두 기준 — 정확성과 효율
같은 별에 닿는 길은 여러 개예요(로봇 길찾기에서 봤듯이).
그럼 어느 게 더 좋을까요?
- 정확성 — 정말 별에 닿는가(맞는 답을 내는가). 엉뚱한 곳에 빨리 도착하는 건 소용없어요.
- 효율 — 더 적은 명령으로 닿는가. 8칸 돌아가는 길보다 8칸 직진이 더 좋은(효율적인) 알고리즘이에요. "일이 얼마나 적게 드는가"를 따지는 게 효율이에요.
2. 무언가가 '알고리즘'이 되려면 — 유한성과 명확성
- 유한성(finiteness) — 명령이 언젠가는 끝나야 해요. 영원히 돌기만 하면(끝나지 않는 반복) 알고리즘이 아니에요.
- 명확성(definiteness) — 각 명령이 딱 한 가지 뜻이어야 해요. 앞에서 본 "대충"처럼 해석이 갈리면 알고리즘에 쓸 수 없어요.
3. 세 블록의 정식 이름 (학술어)
본문에서 쉬운 말로 부른 세 블록을 컴퓨터 과학에서는 이렇게 불러요.
- 차례대로 = 순차 (sequencing)
- 갈림길 = 조건 / 선택 (selection · conditional)
- 되풀이 = 반복 (iteration · loop)
그리고 이 세 블록이 전부라는 건 유명한 약속이에요.
자가진단
외운 사실이 아니라 개념을 적용하는 문제예요. 답을 고르면 바로 정답·오답과 해설을 알려줘요. 틀려도 괜찮아요 — ↺ 다시로 얼마든지 다시 풀 수 있어요.
힌트: 별은 위쪽 그리고 오른쪽에 있어요. 순서가 달라도 별에만 닿으면 정답이에요.
위로 둘, 오른쪽으로 둘이면 되는데… 어딘가 거꾸로 간 칸이 있어요.
- 1↑ 위로
- 2↑ 위로
- 3↓ 아래로
- 4→ 오른쪽
- 5→ 오른쪽
핵심 정리
(순차)
(반복)
(조건)
- 알고리즘은 누가 따라 해도 같은 결과가 나오는 정확한 명령의 순서예요.
- 거의 모든 알고리즘은 입력 → 처리 → 출력 모양이에요.
- 그리고 그 속은 세 블록(순차·반복·조건)의 조합이에요.