Information Technology

알고리즘이란? 알고리즘 개념 쉽게 이해하기

coinAA 2021. 6. 21.

인사말

비전공자도 쉽게 이해할 수 있도록 깊게 파고들지 않고 대략적인 설명을 다루고 있습니다. 이 글에서는 알고리즘은 무엇이며 어떻게 만들어지고 어떻게 구현되는 것인가를 설명하고 있습니다.

알고리즘 개념

알고리즘이란?

알고리즘이란 어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정을 기술한 것이다.
어떤 일을 수행할 수 있는 일련의 명령어 또는 규칙의 집합이며,  알고리즘을 설계하기 위해서는 해야 할 작업을 명확하게 명시해야 하고 문제 해결이나 처리 과정에서의 순서를 단계적으로 서술한다.


문제 해결을 위한 알고리즘 종류

자동차 내비게이션 알고리즘

출발지와 목적지 두 지점 간의 최단 경로나 최단 시간이 걸리는 경로를 제공한다.
최단 경로 알고리즘을 제공한다.


현금 자동인출기(ATM) 알고리즘

여러 지역의 수많은 ATM의 잔고 유지하며 자금 운용한다.
스케줄링 알고리즘 등 여러 알고리즘을 사용한다.

 

인터넷 검색 알고리즘

인터넷에는 수조 페이지 이상의 데이터 존재가 존재 하지만 최대한 빨리 정확한 검색 결과 제공하는 알고리즘 제공한다.

 

문제를 알고리즘으로 작성하는 과정

  • 문제 분석
    • 주어진 문제에 대한 논리적 분석을 통하여 핵심 사항들을 분석한다.
  • 데이터 수집과 표현
    • 문제 해결과 관련된 정보들을 수집하며 데이터를 적절한 형태로 표현한다.
  • 분해
    • 복잡한 문제를 보다 쉽게 다룰 수 있도록 여러 개의 작은 부분들로 쪼개어 분해한다.
  • 패턴인식
    • 문제 내에서 공통적인 유사성이나 규칙을 찾아낸다.
  • 추상화
    • 문제에서 필요 없는 부분들을 걸러내고 복잡한 문제나 아이디어를 단순화한다.
  • 알고리즘
    • 문제에 대한 단계적인 해결책, 설명, 지시 사항들을 설계한다.
  • 평가
    • 알고리즘의 정확성, 해답의 적절성, 효율성 등을 최종 점검하고 평가 완료 후에는 알고리즘을 기반으로 코딩한다.

 

알고리즘의 특성

  • 입력(Input)
    • 문제를 풀기 위한 입력이 반드시 필요하다.
  • 출력(Output)
    • 문제를 해결했을 때 그 결과인 출력이 반드시 존재하여야 한다.
  • 유한성(Finiteness)
    • 알고리즘은 일정한 시간 내에 반드시 종료되어야 하며,  알고리즘 수행이 끝나지 않거나 매우 오래 걸리면 원하는 결과 값을 얻을 수 없다.
  • 정확성(Correctness)
    • 주어진 문제에 대한 정확한 출력 값을 만들어야 한다.
  • 일반성(Generality)
    • 같은 유형의 문제에 모두 적용 가능하다.

 

알고리즘의 표현 방법

순서도(Flow Chart)

문제 해결 과정을 기호와 도형을 사용하여 표현하는 방식이다.

순서도(Flow Chart) 기호
순서도 예시 / 출처 : 위키백과 

 

의사 코드(Pseudocode)

프로그램 명령문 형식을 취하고 각 명령을 사람이 이해하기 쉽게 적당한 뜻을 가진 단어로 나타낸다.


일반적인 언어

사람이 사용하는 문장으로 설명하는 것을 말한다.

 

알고리즘의 구현 과정

알고리즘은 문제를 해결하기 위한 체계적이고 순서적인 절차이다.
논리적 표현으로 변환하면 순서도나 의사 코드로 변환 가능하며, 알고리즘을 프로그래밍 언어로 변환하면 컴퓨터 프로그램이 되며, 최종적으로 컴퓨터 프로그램을 실행하여 결과 값을 출력한다.

댓글