같은 문제를 푸는 방법은 여러 가지고, 그중에는 빠른 것도 느린 것도 있다. 알고리즘은 "문제를 푸는 절차"를 다루고, 그 절차가 얼마나 효율적인지를 따지는 게 복잡도다. 오늘은 알고리즘이 갖춰야 할 조건부터 성능을 재는 빅오 표기법까지, 알고리즘 공부의 토대를 잡았다.1. 알고리즘의 정의와 요건알고리즘(Algorithm)어떤 문제를 해결하기 위한 일련의 순서(명령어의 나열)다. 가장 오래된 알고리즘으로는 기원전 300년경 유클리드의 최대공약수 알고리즘이 꼽힌다. 알고리즘이라 부르려면 다음 다섯 조건을 갖춰야 한다.요건설명입력(Input)0개 이상의 외부 입력출력(Output)1개 이상의 출력정확성주어진 입력에 대해 올바른 해를 냄유한성일정 시간 안에 반드시 종료수행성모든 명령이 실제로 실행 가능 입력은..