관리 메뉴

Silver Library (Archived)

#1 Start - Fundamental of algorithm 본문

F2. Problem & Solving/Theory of algorithm

#1 Start - Fundamental of algorithm

Ayin Kim 2023. 1. 7. 16:40
반응형

Definition of algorithm

1. 컴퓨터 언어 (Computer language)

- 컴퓨터와 대화하기 위해서 사용하는 언어

- C, C++, C#, Java, Python, JS 등.

 

2. 컴퓨터 알고리즘 (Computer Algorithm)

- 컴퓨터를 이용하여 주어진 문제를 풀기 위한 방법이나 절차

- 정렬알고리즘, 해시알고리즘, 최단거리알고리즘 등

 

3. 컴퓨터 프로그램 (Computer program)

- 컴퓨터가 특정 작ㅇ버을 수행하기 위해 짜여진 명령의 순서.

 

1. 컴퓨터 알고리즘의 정의

- 컴퓨터 알고리즘의 의미

-> 컴퓨터를 이용해서 어떤 작업을 하려고 한다면 컴퓨터에게 할 일을 하나씩 차례대로 알려줘야 한다.

 

-> 시청까지 올 때, 다음의 교통 수단을 이요해서 오는 방법을 단계별로 설명한다면?

A. 택시를 타고, 지하철을 타고, 버스를 타고, 자전거를 타고, 걸어서. (가능한 선택지)

여기서, 택시의 경우 운전기사나 폰을 통해 목적지를 알려줘야 한다. 목적지에 도착하면 비용 지불. 이 후, 걸어서 도착.

(단계적으로 과정을 설명하는 것. 지도 네비게이션 경로를 떠올리면 이해하기 쉬움) 

 

Q. 가장 빠른 방법은? 가장 비용이 많이 드는 방법은?

빠른것은 택시, 비용이 큰 것도 택시.

느린것은 걸어서, 비용이 적은 것도 걸어서.

 

문제, 해결방법, 효율성. 이 3가지를 따져야 함.

위 예시의 경우, 시청까지 집에서 가기 위한 문제를 해결하는 것이 그 문제해결 대상의 상황.

 

컴퓨터 알고리즘을 설명하기 위한 4단계.

#1. 문제 정의 (Problem definition)

- 해결하고자 하는 문제는 무엇인가?

- 입력출력의 형태로 정의될 수 있는가?

- 컴퓨터가 수행할 수 있는 형태로 전환이 가능한가?

 

#2. 알고리즘 설명 (Algorithm description)

- 컴퓨터가 수행해야 할 내용은 하나씩 차례대로 정의한 과정

Do the laundry
1. Gather the dirty clothes
2. Separate the clothes into piles light colors, dark colors, and white.
3. Select the type of wash in machine such as regular, delicate, or perm press.
4. Add some detergent and fabric softener.
5. Wait until the washing machine finishes the job.
6. Take out the wet clothes and place them into drying lack.
7. After 1-2 days, fold and pile them.

이 경우, dirty clothes 는 input. Clean clothes 는 output 으로 이해 할 수 있음.

예) 카라멜 마키아토 만들기? 
이런 경우는, 해당 커피 레시피를 떠올려보기.
1. 카라멜 시럽을 컵에 넣어준다.
2. 따뜻한 우유를 컵에 넣는다.
3. 시럽과 우유를 잘 섞어 준다.
4. 우유거품을 만든다.
5. 우유거품 위로 에스프레소 커피(마키아토)를 부어준다.

#3. 정확성 증명 (Correctness proof)

- 과정대로 수행하면 출력으로 항상 올바른 답을 내보내는가?

- 잘못된 답을 내보내는 경우는 없는가?

- 올바른 출력을 내보내고 정상적으로 종료되는가?

 

#4. 성능 분석 (performance analysis)

- 수행시간 (running time)

- 사용공간 (space consumption)

 

To conclude...

컴퓨터 알고리즘의 의미.

컴퓨터 알고리즘은 주어진 문제를 효율적으로 풀기 위한 방법을 단계별로 기술해 놓은 것이다. 따라서 기본적인 연산능력만 가지고 있다면 누구나 문제를 해결할 수 있도록 명확하게 기술되어야 한다.

 

컴퓨터 알고리즘의 분석.

컴퓨터 알고리즘은 크게 4단계로 이루어지는 데 각 단계는 문제 정의, 알고리즘 설명, 정확성 증명, 성능분석 이다.

 

참고. T아카데미

일부 내용은 필자의 취향에 따라 달라질 수 있음.