CS/알고리즘

[알고리즘] 1. 알고리즘의 개요

JIN-JJS 2025. 2. 10. 19:36

1. 알고리즘의 개요

1) 알고리즘의 개념

• 컴퓨터는 대용량 저장 공간을 가지고 있으며 빠르게 연산을 처리할 수 있으므로 인간의 활동에 필요한 작업을 보다 효과적으로 수행할 수 있음

• 수치 계산뿐만 아니라 문자, 그림, 소리, 동영상 등 다양한 형태의 자료를 처리하여 사용자가 원하는 정보를 제공

 

2) 자료와 정보

자료(data): 단순한 관찰이나 측정을 통해 수집된 사실이나 어떤 값으로, 프로그램을 수행하는 데 필요한 재료

정보(information): 자료를 특정 목적에 맞게 가공하고 처리하여 실제 문제 해결에 유용한 형태로 변환한 것

 

3) 컴퓨터 프로그램의 기본 개념

자료구조(data structure): 데이터를 효율적으로 표현하고 저장하는 다양한 구조

알고리즘(algorithm): 어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정

 

4) 알고리즘의 필요성

• 네비게이션: 최단 경로를 찾는 알고리즘

• 인터넷 검색: 대량의 데이터를 빠르게 검색하는 알고리즘 

 제조 공정: 작업의 순서를 정리하는 위상 정렬 알고리즘

 

 

2. 알고리즘의 표현 방법

1) 알고리즘의 표현 방식

• 자연어(한국어, 영어 등)

• 순서도(flowchart)

• 의사코드(pseudocode)

• 프로그래밍 언어(C, C++, JAVA 등)

 

2) 알고리즘의 표현 방법별 특징

자연어

 사람이 이해하기 쉽지만 모호성이 존재할 수 있음

 복잡한 알고리즘을 표현하기에는 적절하지 않음

 

순서도

 문제 해결 과정을 도형과 화살표로 표

가시적이고 직관적이지만 복잡한 알고리즘을 표현하기 어려움

 

의사코드

 프로그램 코드와 유사한 형식을 가지며 특정한 프로그래밍 언어에 의존하지 않음

 알고리즘을 기술하는 데 가장 선호되는 표기법

 

프로그래밍 언어

 C, C++, JAVA 등과 같은 특정 프로그래밍 언어로 표현 가능

 가장 정확하게 표현할 수 있으나 구현 세부 사항이 포함될 수 있음

 

 

3. 알고리즘의 기본 구조

1) 변수와 상수

변수: 특정 값을 저장하기 위한 공간

상수: 변하지 않는 값을 가지는 데이터

 

2) 지정문(Assignment)

• 변수나 연산 결과를 저장하는 명령문

• 예) sum = sum + 1

 

3) 반복문(Loop)

• 특정 조건이 만족될 때까지 반복 실행하는 구조

for 문, while 문, do-while 문이 있음

 

4) 조건문(Conditional Statement)

• 조건을 판단하여 명령을 실행하는 구문

if-else 문, 다중 if 문 등이 있음

 

5) 함수(Function)

• 반복적으로 사용하는 기능을 독립적인 코드 블록으로 작성

• 코드의 재사용성을 높이고 유지보수를 용이하게 함

 

 

4. 효율적인 알고리즘

1) 알고리즘 분석의 필요성

• 알고리즘의 명확성과 효율성을 분석해야 함

• 소요 시간과 메모리 사용량을 고려하여 최적화

 

2) 알고리즘의 수행 시간

• 입력 크기에 따라 시간이 어떤 비율로 증가하는지 분석

• 최악의 경우와 평균적인 경우를 고려하여 성능을 평가


이 내용은 휴넷사회복지평생교육원의 알고리즘 강의를 듣고 정리한 것입니다.