알고리즘 이란 문제를 해결하기 위한 절차나 방법을 말합니다.
즉, 어떤 문제를 해결하기 위해 정해진 순서대로 수행해야 하는 일련의 명령이나 규칙의 집합입니다.
알고리즘 설계 기법
알고리즘의 특징
- 명확성(Definiteness): 각 단계는 명확하게 정의되어 있어야 함.
- 유한성(Finiteness): 수행 단계가 반드시 끝나야 함.
- 입력(Input): 외부에서 주어지는 데이터가 있어야 함.
- 출력(Output): 문제 해결의 결과가 있어야 함.
- 효율성(Efficiency): 시간과 자원을 가능한 덜 사용해야 좋음.
알고리즘의 목적
- 정확성(Correctness): 문제를 정확히 해결해야 함.
- 시간 복잡도(Time Complexity): 가능한 빠르게 실행되어야 함.
- 공간 복잡도(Space Complexity): 가능한 적은 메모리를 사용해야 함.
- 단순성(Simplicity): 유지보수가 쉬워야 함.
- 재사용성(Reusability): 다른 문제에 쉽게 응용 가능해야 함.