본문 바로가기
프로그래밍

알고리즘

by 길냥이 2025. 3. 8.
728x90

자! 프로그래밍을 하면 항상 따라붙는 단어들이 있는데, 그 중 유명한 것이 바로 이 알고리즘(Algorithm)이에요.

다들 많이 들어보시긴 하셧을 텐데, 그래서 이게 뭐하는걸까요?

 

알고리즘이란?

알고리즘은 수학과 컴퓨터과학에서 사용되는 문제 해결 방법을 정의한 일련의 단계적 절차에요.

아니라고요? 위키백과에서는 이거라는데..

 

흠, 일단 예시를 들어 볼까요.

 

숫자 100개가 있어요, 이 중에서 특정한 숫자를 어떻게 찾아낼까요?

일단 이 숫자가 정렬(Sorting)되어 있는지 아닌지를 알아야 하는데.. 일단 정렬되어있다고 가정합시다.

여기서 특정 숫자(52)를 찾아볼까요.

 

일단 대충 중앙 숫자를 찾아봅시다. 그럼 50이 나오겠네요.

52는 50과 가까우니, 하나씩 올려서 찾아가보면 52를 발견.

 

간단하죠? 이런게 알고리즘이에요.

 

1부터 100까지의 합을 구하는 알고리즘

그럼 이번에는 수학적인 영역으로 접근해 봅시다.

1부터 100까지의 합을 어떻게 구할까요?

 

고등학생쯤 되면 등차수열의 합을 이용해서 구할수도 있는데, 초등학생들은 어떻게?

놀랍게도 초등학생이 이 문제를 빠르게 풀었습니다. 바로 가우스가 초등학생일 때 이 문제를 풀었죠.

 

자, 식을 세워보면

 

1+2+3+.....98+99+100이에요

이걸 중간에 한번 접으면..

 

1+2+3+....

100+99+98...

이 되죠.

 

50은 옆에 버려두고, 100과 1을, 99와 2를, 98과 3을 짝지으면 101×50 = 5050이 되죠.

물논 이게 사실이라는 확신은 없는데.. 이건 꽤나 유용하게 쓰이는 방식이니 기억해두도록 하세요!

 

알고리즘 설명하기

그렇다면, 이 알고리즘은 어떻게 설명할까요?

물론 위에 말했던거처럼 1. 이렇게.. 2. 저렇게.. 식으로 설명할 수도 있어요. 이를 자연어(Natural language) 설명이라고 하죠.

 

다른 방법 두 가지가 있으니, 순서도(flowchart)방식과 의사 코드(pseudo code)방법이 있겠네요.

 

의사 코드는 그리 복잡하지 않아요. 열화된 프로그래밍 언어지요. 그냥 마크업언어같다고 할까..

의사 코드는 그냥 이렇게 생겼어요.

 

 

 

순서도는 여러분이 어릴때 그렸던것과 비슷해요.

짜잔, 사실 도형은 저거말고 더있긴 해요

728x90

'프로그래밍' 카테고리의 다른 글

프로그래밍의 개념  (2) 2025.03.06