[IT 사전] 알고리즘과 의사코드

2023. 12. 9. 17:35IT 정보

알고리즘과 의사코드란?

알고리즘이란 특정한 작업을 수행하기 위해 입력을 받고 원하는 출력을 만들어내는 과정을 기술한 것 입니다.

 

간단하게 말하면, 문제 해결의 절차라고 할 수 있는데요.

 

알고리즘을 설계할 때는 명확하고 모호하지 않은 정보가 필요합니다.

 

예를 들어서 학생 10명에게 시험 점수를 입력으로 받아 1등을 출력하는 작업을 한다면

입력과 출력을 아래와 같이 표현할 수 있습니다.

 

입력 : 10개의 점수 (79, 88, 57, 16, 92, 100, 75, 82, 88, 90)

출력 : 10개의 점수 중 최대값 (100)

 

이런 입출력들을 작성해보면 아래처럼 절차를 작성할 수 있습니다.

 

1. 점수 10개를 입력받는다.

2-1. 입력 받은 점수들을 하나씩 순회한다.

2-2. 순회하며 최대 값을 찾아낸다.

3. 2-2에서 얻은 최대 값을 출력한다.

 

 

이 내용들을 토대로 의사코드(pseudocode)를 작성할 수 있는데요.

최대점수를구하는함수(입력 x[]) {
maxX = x의 첫 번째 원소 
반복문 e <- (x[]의 두 번째 원소부터 하나씩 순회하기) :
	만약 e가 maxX 보다 크면 :
    		maxX = e
return maxX
}

의사 코드는 꼭 실제 코드일 필요는 없고, 자연어로도 작성할 수 있는 알고리즘을 표현하는 방식 중 하나입니다.

프로그래밍 언어와 유사하지만, 서로 간의 이해나 알고리즘을 작성하기 전에 스케치하는 느낌으로 작성하는 방법입니다.

이러한 점은 특정 언어에 제한되지 않고 알고리즘의 절차를 전달할 수 있다는 장점이 있습니다.

 

 

 

이런식으로 알고리즘은 문제를 해결하기 위한 절차나 방법을 의미하고, 넓은 의미로는 문제를 해결하기 위한 절차나 방법을 의미하는 단어로 사용됩니다.

특히 프로그래밍에서 말하는 알고리즘은 이하의 요건을 만족해야만 합니다.
  • 입력 - 알고리즘은 0 또는 그 이상의 외부에서 제공된 자료가 존재해야한다.
  • 출력 - 알고리즘은 최소 1개 이상의 결과를 가져야한다.
  • 명확성 - 알고리즘의 각 단계는 명확하여 애매함이 없어야 한다.
  • 유한성 - 알고리즘은 단계들을 유한한 횟수로 거친 후 문제를 해결하고 종료해야 한다. 알고리즘의 한 단계 이후 m의 값은 n 보다 작으며, m != 0이면 n의 값은 다음 번 단계에서 줄어든다.
  • 효과성(수행가능성) - 알고리즘의 모든 연산들은 사람이 종이와 연필을 이용하여 유한한 시간 안에 정확하게 수행할 수 있을 정도로 충분히 단순해야 한다.

 

특히, 직접 코드를 작성하는 입장에서 주목할 점은 유한성인데요

대표적으로 프로그래밍에서 while 문의 경우 종료에 대한 조건을 신경쓰며 코드를 작성해야 합니다.

 

더 자세한 내용이 알고 싶다면?

돌핀코딩에서 알고리즘 강의를 무료로 수강해보세요!

 

https://dolphincoding.io/course/1/lesson

 

돌핀코딩 - Do it! 알고리즘 코딩테스트 - 핵심이론 강의

인공지능 돌고래와 함께하는 온라인 코딩 교육 플랫폼

dolphincoding.io:443

 

https://dolphincoding.io/course/56/lesson

 

돌핀코딩 - 빠르고 효율적인 코드를 작성하기 위한 알고리즘 강의

인공지능 돌고래와 함께하는 온라인 코딩 교육 플랫폼

dolphincoding.io:443

 

 

 

 

 

 

 

 

[출처] 

https://product.kyobobook.co.kr/detail/S000001743653

https://namu.wiki/w/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98