Page 22 -
P. 22

니다. 따라서 알고리즘을 정확하게 전달하려면 실제 프로그래밍 언어를 사용해서 작성하는 등 알
               맞은 방법이 필요합니다.

               다른 책에서는 알고리즘을 서술할 때 의사 코드(pseudocode)를 사용해 if문, for문, while문 등으
               로 추상화한 절차에 중간중간 말로 설명을 추가하는 서술 방식을 사용하는 편입니다. 그러나 이
               책은 알고리즘을 배운 뒤 바로 실용적인 문제를 해결하는 데 사용할 수 있도록 실제로 동작하는
               프로그램으로 알고리즘을 서술합니다. 즉, C++ 프로그래밍 언어로 알고리즘을 작성하며, 일부

               파이썬(Python) 언어로 구현하는 방법도 언급할 것입니다. 작성한 소스 코드는 컴퓨터에서 바로
               실행할 수 있습니다. 동작 환경은 책을 읽기 전에 부분을 참고해 주세요.






               1.5      알고리즘을 배우는 의미                          A LG O RI T HM  &  D AT A  S TR U CT UR E S






               세상은 수많은 문제로 가득합니다. 이 책에서는 전체 탐색(3장), 동적 계획법(5장), 이진 탐색법
               (6장), 탐욕 알고리즘(7장) 같은 알고리즘 설계 기법을 자세히 설명합니다. 문제에 따라 효과적으
               로 알고리즘을 설계할 수 있게 되면, 문제 자체를 깊이 이해하게 되고 문제 해결 행위 자체를 바라

               보는 시야도 넓어집니다.
               저도 알고리즘을 배우기 전에는 문제를 해결하는 행위를 고등학교 수학에서 배우던 ‘공식’ 같은 걸

               찾는 거라고만 생각했습니다. 하지만 알고리즘을 배우고 나서는 구체적인 답을 구하지 못하더라
               도 답에 다가가는 ‘절차’를 찾으면 된다는 식으로 관점이 바뀌었고, 문제 해결 폭이 크게 넓어졌습
               니다. 여러분도 이 책을 통해 다양한 알고리즘 설계 기법을 터득하면 좋겠습니다.






               1.6      연습 문제                                 A LG O RI T HM  &  D AT A  S TR U CT UR E S






               1.1   나이 맞히기 게임에서 A 씨의 나이가 20살 이상 36살 미만인 각각의 경우에 대해 이진 탐색
                   으로 나이를 맞힐 때까지의 흐름을 구하라. (난이도 ★)




         038
   17   18   19   20   21   22   23   24   25   26   27