728x90
반응형
배열의 최대값 구하기
한동안 C를 안해서 그런지 배열이고 뭐고 다 까먹었다.
동적 배열은 물론이고 이제 기본 배열마저 다시 책을 뒤져봐야 하다니
난 이제 거의 심각하게 망했다고 보면 될 것같다.
알고리즘 잘한다고 개발 잘하는게 아니고 개발 잘한다고 알고리즘 잘하는게 아니던데,
물론 나는 둘 다 해당사항없다.
책 다시 보면서 공부 좀 해야겠다.
이번 문제는 배열의 최대값을 구하는 문제이다.
1. 배열의 최대값
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include<stdio.h> int main() { int num[5] = {48,26,23,5,7}; printf("%d\n", max_arr(num, 5)); return 0; } int max_arr(int arr[], int arr_len) { int max, i; max = arr[0]; for (i = 1; i < arr_len; i++) { if (max < arr[i]) max = arr[i]; } return max; } | cs |
Static array로 구성해봤다.
이미 arr_len이 정해져 있으므로 배열과 고정값을 파라미터로 넘기고
max값을 반환했다.
따라서 main 함수보다는 max_arr 함수에 주목해한다.
2. max_arr 함수
1 2 3 4 5 6 7 8 9 10 11 12 13 | int max_arr(int arr[], int arr_len) { int max, i; max = arr[0]; for (i = 1; i < arr_len; i++) { if (max < arr[i]) max = arr[i]; } return max; } | cs |
함수는 다음과 같다.
반환할 max를 선언 후 배열 첫째 값을 처장한다.
i는 배열의 인덱스 역할을 하며 반복문을 통해 배열이 이동되면서
max값과 비교 연산을 실행하게된다.
반복문을 통한 비교연산은 탐색의 기본적인 방법이다.
따라서 이와같은 기본문제를 통하여 어떤식으로 동작하는지 알아두도록 하자.
비교 연산 후 최종으로 max에 저장되는 값이 제일 큰 값이므로
해당 값이 max에 저장, 반환된다.
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
[알고리즘] 큐(Queue)를 이용한 대기번호 (0) | 2017.04.18 |
---|---|
[알고리즘] 배열의 범위 회전 (0) | 2017.04.18 |
[알고리즘] 두 변수의 값 바꾸기 (0) | 2017.04.18 |
[알고리즘] 최대최소 (0) | 2017.04.18 |
[알고리즘] C언어 배열을 활용한 Stack 구현 (2) | 2017.04.18 |
댓글