khanacademy의 computing 과정을 듣고 필기한 내용입니다.
결국 알고리즘은 어떤 문제를 해결하기 위한 절차의 집합이다.
컴퓨터가 1에서 16까지 정수 중 무작위로 하나를 선택하고, 우리는 무작위로 하나를 선택합니다. 컴퓨터가 고른 수를 알아낼 때까지 계속 추측하고, 각 추측마다 숫자가 높은지 낮은지 알려줍니다.(up&down 게임)
1을 고르고 2, 3, 4 순서대로 고르는 방식으로 맞을 때까지 하는 방법을 선형검색(linear search)
이라고 합니다.
일단 16의 반인 8을 고르고 up & down을 알려주면 나머지는 제하는 방식이 이진탐색(binary search)
라고 합니다.
-> 이런 식으로 진행하면 무슨 수를 고르던 최대 네 번의 추측 안에 수를 맞출 수 있습니다.
-> 1에서 300까지의 수에서도 최대 아홉 번의 추측으로 가능합니다.
-> 아마도 2의 거듭제곱으로 가능한 듯 하다. 2의 9승이 512이고 2의 8승이 256이므로 300까지의 수에서는 9번으로 가능
위 질문에 답하려면 정보가 있어야 합니다. 바로 가까운 곳과 연결하는 직접적 관계를 이용하여 가까운 경로를 지도(혹은 가계도 등)에서 찾는 것입니다.
캐릭터가 내가 클릭하는 곳(goal)까지 최단 경로로 가려면 어떻게 해야하는가?
-> 캐릭터가 가는 길에는 여러 길이 있을 수 있으므로 프로그램은 최선의 경로를 선택해야 합니다.
알고리즘을 결정하기 전 우선 이동 규칙이 만들어져야 합니다. -> 네모마다 캐릭터가 그 정점에서 목표 지점까지 이르기 위해 거쳐야하는 단계의 최소 횟수인 비용
을 할당함으로써 결정할 수 있습니다.
#20210610
#TIL
출처 : khanacademy
https://ko.khanacademy.org/computing/computer-science/algorithms/intro-to-algorithms/a/route-finding