생능출판사
[컴퓨터과학] 알고리즘의 구조 : 순차, 반복, 선택 본문
★이 글은 《처음 떠나는 컴퓨터과학 산책》을 발췌하여 작성되었습니다.
알고리즘의 구조 : 순차, 반복, 선택
알고리즘은 일이 수행되는 절차라고 할 수 있습니다. 간단한 알고리즘은 단순하게 일의 처리 순서를 나열하면 되지만, 복잡한 알고리즘은 하나의 절차로 완성되지 않습니다. 따라서 알고리즘을 분해해서 덩어리로 나누면 좀 더 쉽게 이해하고 수행할 수 있습니다. 이렇게 덩어리로 나눈 부분도 순서에 따라 실행해야 하므로 제어(control)하는 것이 필요합니다.
일반적으로 알고리즘은 다음과 같은 3가지 흐름 제어(flow control)를 가지고 있습니다.
순차 | 반복 | 선택
● 첫 번째, 시작부터 차례대로 진행되어 끝까지 명령이 실행되는 구조입니다. 이런 제어구조를 ‘순차’ 구조라고 합니다.
● 두 번째, 명령어가 진행되다가 어느 시점에서 반복하는 부분이 포함된 구조입니다. 이런 제어구조를 ‘반복’ 구조라고 합니다.
● 세 번째, 조건에 따라 실행 흐름이 달라지는 구조입니다. 이런 구조를 ‘선택’ 구조라고 합니다.
이렇게 알고리즘의 기본 구조를 이해하고 다양한 알고리즘을 만들어 봅시다. 먼저 간단한 로봇 청소기의 작동 흐름을 알고리즘으로 만들어 봅시다.
로봇 청소기가 청소하는 알고리즘의 세 가지 구조를 순서도로 표현해 보면 다음과 같은 알고리즘 작성이 가능합니다.
이렇게 알고리즘의 구조를 이해하고 주변에서 발생하는 일을 알고리즘으로 표현하는 습관을 가지게 되면 컴퓨팅 사고력을 발전시킬 수 있을 겁니다. 그럼 일상생활의 일이나 문제를 알고리즘으로 나타내는 사례를 생각해 볼까요?
예를 들어 덧셈 프로그램을 만든다고 생각해 봅시다.
이렇게 덧셈 알고리즘을 컴퓨터 명령어로 작성해 놓으면, 어떤 수든지 두 개의 숫자를 입력하면 자동으로 두 숫자의 합을 알려주는 프로그램을 만들 수 있습니다. 컴퓨터는 주어진 명령을 자동으로 수행할 수 있으므로, 알고리즘을 만들고 컴퓨터가 이해하는 명령어로 만들면 자동화가 됩니다. 따라서 컴퓨터가 이해할 수 있을 정도의 알고리즘을 만드는 것이 중요합니다.
컴퓨터가 정확히 이해할 수 있는 알고리즘을 만들려면 다음과 같은 조건을 고려하는 것이 좋습니다.
| 알고리즘을 만들 때 고려할 조건
여러분이 사용하는 ‘스크래치’나 ‘엔트리’, ‘파이썬’, ‘C’, ‘JAVA’와 같은 프로그래밍 언어는 컴퓨터에 정확하게 명령을 내릴 수 있도록 만들어진 언어입니다.
앞으로 알고리즘을 생각할 때는 컴퓨터에 어떻게 명령하면 자동화할 수 있을까를 생각하는 단계까지 고려해 봅시다. 이렇게 알고리즘을 컴퓨터 명령어로 바꾸는 과정을 ‘프로그래밍(programming)’이라고 하고, 프로그래밍하는 사람을 ‘프로그래머(programmer)’라고 합니다. 프로그램은 명령어들의 집합이므로, 컴퓨터가 이해하고 수행이 가능한 형태가 됩니다.
《컴퓨터과학 산책》과 함께 알고리즘에 대해 공부해요 : )
[1] 넷플릭스!! 알고리즘이 당신에게 이것을 추천합니다
[2] 알고리즘의 표현 방법
[3] 알고리즘의 구조
'컴퓨터과학' 카테고리의 다른 글
[개발자의 3분 책소개] 처음 떠나는 컴퓨터과학 산책, 유튜브 영상 (0) | 2021.06.08 |
---|---|
[컴퓨터과학] 알고리즘의 표현 방법 : 순서도, 의사코드(슈도코드) (0) | 2021.05.24 |
[컴퓨터과학] 넷플릭스!! 알고리즘이 당신에게 이것을 추천합니다 (0) | 2021.05.17 |