알고리즘(Algorithm)은 수학과 컴퓨터 과학에서 문제를 해결하기 위해 정의된 일련의 단계적 절차이자 명령어들의 집합이다. 계산을 실행하기 위한 규칙들의 집합을 의미하며, 입력된 데이터를 처리하여 특정 결과를 도출하는 유한한 계산 과정을 뜻한다. 현대 사회에서는 연산, 데이터 마이닝, 자동화된 추론 등 다양한 분야에서 핵심적인 역할을 수행한다.

배너 광고

개요 및 정의

알고리즘은 어떠한 문제를 해결하기 위한 동작들의 모임 또는 명령어들의 집합이다. 이는 인간이나 기계가 반복적으로 문제를 해결할 수 있도록 방법을 기술하는 수단이 된다. 컴퓨터 과학에서는 유한한 수의 규칙에 따라 기호를 조작하여 입력값으로부터 출력값을 생성하는 일반화된 작업을 의미한다.

어원과 유래

알고리즘이라는 용어는 9세기 페르시아의 수학자인 무함마드 알콰리즈미의 이름을 라틴어화한 '알고리스무스(Algorismus)'에서 유래하였다. 한국어 표기법상 '알고리듬'이 원어 발음에 더 가깝다는 주장이 있으나, 실제 언어생활에서는 '알고리즘'이라는 표기가 압도적으로 많이 사용된다.

알고리즘의 조건

좋은 알고리즘이 갖추어야 할 주요 특징은 다음과 같다.

  • 정밀성: 변하지 않는 명확한 작업 단계를 가져야 한다.
  • 유일성: 각 단계마다 명확한 다음 단계를 가져야 한다.
  • 타당성: 실제로 구현 가능하고 실용적이어야 한다.
  • 입력과 출력: 외부에서 제공되는 입력값이 있을 수 있으며, 반드시 하나 이상의 결과(출력)를 생성해야 한다.
  • 유한성: 유한한 단계를 거친 후에는 반드시 종료되어야 한다.

효율성 분석

컴퓨터 과학자들은 알고리즘의 효율성을 비교하기 위해 '알고리즘의 복잡성'이나 'Big O' 표기법을 사용한다. 이는 알고리즘이 실행되는 데 걸리는 시간이나 필요한 메모리 공간이 입력 데이터의 크기에 따라 어떻게 변하는지를 나타낸다.

주요 사례 및 분류

알고리즘은 용도에 따라 다양하게 분류된다.

분류예시
기초 알고리즘요리 레시피, 정렬 알고리즘
경로 탐색외판원 문제(TSP), 트리 순회 알고리즘
머신러닝선형 회귀, 의사결정 트리, 랜덤 포레스트, CNN, RNN, LSTM
문제 해결 전략수학, 구현, 다이나믹 프로그래밍

관련 문헌

알고리즘 분야의 대표적인 입문서로는 《Introduction to Algorithms》가 있다. 저자들의 이름 머릿글자를 따서 'CLRS'라고도 불리며, 전 세계 수많은 대학에서 교재로 사용된다. 대한민국에서는 문병로, 심규석 등이 번역하여 여러 판본이 출간되었다.

참고 자료

5
알고리즘알고리즘 위키낱말사전에 algorithm주제와 관련된 항목이 있습니다. 알고리즘 또는 알고리듬(영어: algorithm)은 수학과 컴퓨터 과학에서 사용되는, 문제해결 방법을 정의한 '일련의 단계적 절차'이자 어떠한 문제를 해결하기 위한 '명령어들의 집합' 또는 '동작들의 모임'이다. 계산을 실행하기 위한 규칙들의 집합(…https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98Algorithm - MDN Web Docs 용어 사전: 웹 용어 정의 | MDNAlgorithm - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN - Skip to main content - Skip to search This page was translated from English by the community. Learn more and join the MDN Web Docs…https://developer.mozilla.org/ko/docs/Glossary/AlgorithmIntroduction to AlgorithmsIntroduction to Algorithms 《Introduction to Algorithms》는 알고리즘입문서이다. 다트머스 대학교교수 토머스 H. 코르먼, 매사추세츠 공과대학교교수 찰스 E. 레이서슨과 로널드 "론" L. 라이베스트, 컬럼비아 대학교교수 클리포드 스타인 네 명이 같이 지은 책으로, 저자들 이름의…https://ko.wikipedia.org/wiki/Introduction_to_AlgorithmsAlgoWikiAlgoWiki Algorithm Wiki**ProblemSet**퀴즈**태그/위키**채점 현황**게시판 **기타** **태그/위키**랭킹**Contest**F.A.Qs**공지사항**이용약관(test)**개인정보 처리방침(test) LoginRegister 게임처럼배우는알고리즘Algorithm Wiki 알고리즘위키는현대…https://www.algowiki.co.kr/알고리즘 분류알고리즘 분류 더 보기 ## Baekjoon Online Judge ## 채점 현황 ## 문제 ## 유저 대회 ## 고등학교 대회 ## 출처 ## 대학교 대회 ## 도움말 알고리즘 분류 * 회원가입 * * 로그인 Toggle navigationLogo * 문제 * * ### 문제 * 전체 문제 * 문제 출처 * 단계별로…https://www.acmicpc.net/problem/tags

관련 문서