728x90
알고리즘의 기초사항
알고리즘이란?
문제가 있고 그 문제를 해결하기 위한 효율적인 알고리즘 찾고 그걸 반복적으로 수행하는 것을 말한다.
정말 알고리즘이 필요할 때는?
코딩은 다했고, 배포도 끝냈을 때.그러나 너무 심각하게 느릴 때
어디 코드를 최적화해서 빠르게 해야 할지 모를 때. 바로 이때 알고리즘을 활용한다.
문제를 해결하기 위해서 알고리즘을 활용해 접근해 본다면?(여기서 '피츄'를 찾는 방법은 이분탐색을 활용함)
<주어진 문제>
전화번호부에서 '피츄'를 찾는다.
<문제 해결방안>
1. 전화번호부를 집어든다.
2. 전화번호부의 중간을 핀다.
* 3. 그 페이지를 살펴본다.
4. '피츄'가 그 페이지에 있다면
5. '피츄'에게 전화를 건다.
**6. 만약에 '피츄'가 더 앞쪽 페이지에 있다면
7. 책 앞쪽의 중간을 펴서 살펴본다.
8. 다시 3단계로 돌아간다. (*다시 3단계로 가서 차례대로 단계를 다시 밟아간다는 의미)
**(여기서 만약에 더 앞쪽에 피츄가 없어서 6단계가 성립되지 않는다면! 그럼 건너뛰고)
9. 만약 '피츄'가 더 뒤쪽 페이지에 있다면
10. 책 뒤쪽의 중간을 펴서 살펴본다.
11. 다시 3단계로 돌아간다.(*그리고 여기서 6단계와 9단계 모두가 해당되지 않는다면)
12. 만약 모든 상황이 맞지 않는다면
13. 이 탐색 행위를 종료한다.
-- '피츄'는 전화번호부에 없다는 의미--
알고리즘 기법
- 복잡도
- 연결리스트
- 트리
- 그래프
- 탐색
- 정렬
다음시간에는 알고리즘 기법에 대해 자세하게 설명을 하도록 하겠습니다.
읽어주셔서 감사합니다.
728x90