CLEVERMATE

SW 코딩 교육을 위한 콘텐츠 공유 공간

알고리즘의 이해

2018년 08월 15일 PM 01:17
코딩을 할 때 가장 중요한 것 중 하나는 알고리즘을 만드는 것입니다. 알고리즘에 대한 이해는 프로그램 작성의 기본입니다. 알고리즘에 대해서는 '우리가 코딩 속 알고리즘을 배워야 하는 이유'라는 제목으로 앞서 포스팅을 했었습니다. 다음 링크를 따라가면 이동합니다. (https://blog.naver.com/marusys_coding/221328421480)


알고리즘(algorithm)은 무엇일까요? 

알고리즘의 사전적 의미는 문제를 해결하기 위해 정해진 일련의 절차입니다. 주어진 문제를 논리적으로 해결하기 위해 필요한 절차, 방법, 명령 들을 모아놓은 것입니다. 알고리즘은 프로그램을 작성하는 기초가 되는 것이며, 컴퓨터를 이용하여 주어진 과제를 해결하기 위한 처리 절차입니다. 컴퓨터를 사용하여 정보를 관리할 때, 이때의 처리 절차를 알고리즘이라고 부릅니다. 

알고리즘은 문제 해결을 위한 처리 절차라 하였습니다. 이렇게 생각하면 컴퓨터의 데이터 처리뿐만 아니라 현실 세계의 다양한 과제의 해결에 있어서도 알고리즘의 개념이 사용되고 있음을 알 수 있습니다. 이를 닦는 것을 문제로 받았다 하고 이를 해결하려면, 

1. 치약의 뚜껑을 연다.
2. 칫솔을 꺼낸다.
3. 칫솔에 치약을 적당량 짠다.
4. 치약을 내려놓고 칫솔질을 한다.
5. 윗니를 칫솔로 위에서 아래로 쓸어내리며 왼쪽에서 오른쪽으로 10회 반복하여 닦는다.
6. 아랫니를 칫솔로 아래에서 위로 쓸어올리며 왼쪽에서 오른쪽으로 10회 반복하며 닦는다.
7. 이의 안쪽도 이와 같이 반복한다.
8. 혀도 칫솔로 안쪽에서 바깥쪽으로 닦아내리기를 5회 반복한다.
9. 양치컵에 물을 채운다.
10. 양치컵의 물을 입에 담고 헹구고 뱉어 내기를 7회 반복한다.
11. 칫솔을 헹군 후, 제자리에 정리한다.
12. 치약의 뚜껑을 닫고 제자리에 정리한다.
13. 양치컵을 헹군 후, 제자리에 정리한다.
  
이와 같은 식으로 절차를 나누고, 이를 적용하여 문제를 해결하는 과정 전체를 알고리즘이라고 합니다.


<출처: 영진닷컴의 그림으로 배우는 알고리즘>

위 그림이 이해하기 쉽게 되어 있는 것 같아 집에 있는 책에서 찍어 올려 보았습니다. 음식 요리법도 알고리즘이라고 하였는데, 여러 가지 음식을 만든다는 '과제'를 해결하기 위한 방법을 순서대로 기록하는 것이기 때문입니다. 실제로 요리하는 로봇이 있습니다. 이 로봇에게는 요리법을 알려주는 것이 가장 큰 미션일 것입니다. 


<출처: https://interestingengineering.com/robot-chefs-could-take-over-our-kitchens-very-soon>

이때 알고리즘이 잘못되면, 그러니까 요리법이 잘못되면 요리가 맛이 없거나 아예 요리가 완성이 되지 않거나 또는 로봇의 움직임이 비효율적일 것입니다. 그렇다면 우리는 요리법을 수정해 입력해야겠지요? 이에 알고리즘이 잘못된 것을 확인하면 알맞게 그리고 보다 효율적으로 개선해야 합니다. 이를 반복하면 효율적인 알고리즘을 갖게 될뿐 아니라, 우리의 문제해결능력과 사고력 또한 향상될 것입니다. 여기에서 우리는 코딩 교육의 의의를 찾을 수 있겠습니다.


※ 참고자료: 
· 그림으로 배우는 알고리즘 Ⅰ 스기우라 켄 지음 Ⅰ 서재원 옮김 Ⅰ 영진닷컴
· https://interestingengineering.com/robot-chefs-could-take-over-our-kitchens-very-soon
· https://m.terms.naver.com/entry.nhn?cid=42346&docId=2454815&categoryId=42346

#교육칼럼 #부모교육 #강사교육 #블로그 #성인 #부모 #교사 #칼럼
[출처 표기] 본 자료를 사용할 때 출처를 반드시 표기합니다.
[수정 불가] 본 자료는 어떤 수정도 불가하며 본 게시물에서 보기만 가능합니다.
[공유 불가] 본 자료는 어떤 공유도 불가하며 본 게시물에서 보기만 가능합니다.

CLEVERMATE 자료를 공유하세요