Page 56 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 56
배열 요소의 최댓값 구하기
배열 요소의 최댓값을 구하는 과정을 살펴보겠습니다. 배열 a의 요소가 3개일 때 세 요소
a[0], a[1], a[2] 중 최댓값은 아래 프로그램과 같이 구할 수 있습니다.
max = a[0];
if(a[1] > max) max = a[1]; 요소 개수가 3이면 if문을 2개 작성합니다.
if(a[2] > max) max = a[2];
변수 이름이 다른 점을 제외하면 실습 1-1에서 살펴본 세 값의 최댓값을 구하는 프로그램과
과정이 동일합니다. 물론 요소가 4개면 아래처럼 해야 합니다.
max = a[0];
if(a[1] > max) max = a[1]; 요소 개수가 4이면 if문을 3개 작성합니다.
if(a[2] > max) max = a[2];
if(a[3] > max) max = a[3];
먼저 배열의 요소 개수와 관계없이 첫 번째 요소 a[0]의 값을 max에 대입합니다. 그런 다음
if문을 실행하는 과정에서 필요에 따라 max 값을 새로 대입합니다. 요소 개수가 n이면 if문
실행은 n – 1번 필요합니다. 이때 max와 비교하고 max에 대입하는 요소의 인덱스는 1씩 증
가합니다. 그러므로 a[0], a[1], …, a[n - 1]의 최댓값을 구하는 프로그램은 아래처럼 구현할
수 있습니다.
max = a[0];
for(i = 1; i < n; i++)
요소 개수가 n이면 if문을 n-1개 작성합니다.
if(a[i] > max) max = a[i];
이 프로그램의 순서도는 오른쪽과 같습니다. a[0] → max
i : 1, 1, n-1
Yes
a[i] > max
No a[i] → max
[그림 2-7] 배열 요소의 최댓값을 구하는 알고리즘
56 C 알고리즘