1-1장 기본 알고리즘 - 알고리즘이란? (1/5)

 

해당 내용은 Do it! 자료구조와 함께 배우는 알고리즘 입문 C 언어 편 (전면 개정판)을 기반으로 작성되었습니다.


1-1장 기본 알고리즘 - 알고리즘이란? (1/5)

알고리즘이란

- 어떠한 문제를 해결하기 위해 정해진 일련의 단계적 절차나 방법을 공식화한 형태로 표현한 것

- 연산, 데이터 진행 또는 자동화된 추론을 수행한다. 

- 즉, 문제 해결을 위해 필요한 계산 절차 / 처리 과정의 순서이다.

어떤 문제를 해결하기 위한 절차로, 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합

 

세 정수의 최대값 구하기

/* chap01/max3.c */

/* 세 정수 값을 입력하고 최댓값을 구합니다. */
#include <stdio.h>
int main(void)
{
	int a, b, c;
	int max;     /* 최댓값 */

	printf("세 정수의 최댓값을 구합니다.\n");
	printf("a의 값 : "); scanf("%d", &a);
	printf("b의 값 : "); scanf("%d", &b);
	printf("c의 값 : "); scanf("%d", &c);

	max = a;
	if (b> max) max = b;
	if (c> max) max = c;

	printf("최댓값은 %d입니다.\n", max);

	return 0;
}

 

1️⃣ max에 a값 넣기
2️⃣ b값이 max 보다 크면 max에 b값 넣기
3️⃣ c 값이 max 보다 크면 max에 c값 넣기

 

이렇게 여러 문장(프로세스)이 순차적으로 실행되는 구조를 순차(sequential) 구조라고 한다. 

1️⃣ 은 단순 대입이지만

2️⃣, 3️⃣ 은 if문으로 if문 ( ) 안에 있는 식의 평가 결과에 따라 프로그램의 실행 흐름을 변경하므로 이를 선택(selection) 구조라고 한다. 

 

연산자와 피연산자

연산자 : 연산을 수행하는 기호

+   -    >    <    ==    등..

 

피연산자 : 연산의 대상이 되는 식

a > 5 일때, a 와 5가 피연산자이다

 

식과 식의 평가

- 변수
- 상수
- 변수나 상수를 연산자로 결합한 것

 

ex) x = n + 135 일때 

x = n + 135의 식

x
n
135
n + 135
x = n + 135

 

x와 n+135가 결합된 식

 

즉, x = n + 135은 대입식(assignment expression)이다. 

 

 

식의 평가

원칙적으로 모든 식에는 값이 있다. (특별 형태인 void 형의 식만 값 없음)

그 값은 프로그램을 실행할 때 확인할 수 있으며, 식의 값을 알아내는 것을 평가(evaluation)이라 한다.