C언어/주차별 문제

[11주차] 배열의 최소값 모두 더하기

슈슈버거 2023. 6. 8. 21:42

문제


내가 작성한 코드

#include <stdio.h>
#define ARRAY_SIZE 5

int foo(int arr[][5], int x){
    int result = 0; //배열의 최소값들을 합해놓을 변수
    int min = 0; //배열 행마다의 최소값 저장 변수

    for(int i = 0; i<x; i++){ //배열 행 만큼
        min = arr[i][0]; //일단 맨 처음 값으로 설정
        for(int j = 0; j<5; j++){ //5개만큼 돌면서
            if(arr[i][j] <= min){ //최소값보다 작거나 같을 경우
                min = arr[i][j]; //최소값 갱신
            }
        }

        result += min; //줄 다 훑은 다음에 result에 min 더해주기
    }

    return result; //모든 반복 끝난 후 result 반환
}

int main() {
    int x; //행 개수 저장
    scanf("%d", &x);
    int arr[x][ARRAY_SIZE];

    for(int i = 0; i < x; i++){ //입력받기
        for(int j = 0; j < ARRAY_SIZE; j++){
            scanf("%d", &arr[i][j]);
        }
    }    
    
    //foo함수의 인자는 자유롭게 정의
    int result = foo(arr, sizeof(arr)/sizeof(arr[0]));
    printf("%d\n",result);
    
    return 0;
}