백준(BaekJoon)

[BaekJoon/C] No.2587 : 대표값2

ekdnjs510 2024. 7. 21. 10:27
728x90

https://www.acmicpc.net/problem/2587

 

No.2587 문제

 

문제해석

다섯개의 값을 입력받을 배열을 선언합니다.  이후 배열들의 값을 모두 더해 입력받은 만큼 나눠주는 평균값과 배열의 값들을 비교하며 크기 순서대로 배치하고 중앙값을 출력하는 코드를 작성합니다. 

 

소스코드 & 문제풀이

#include <stdio.h>

int main()
{
    // 입력받은 수를 저장할 배열변수 선언, 평균값과 임시로 값을 저장할 변수 초기화
    int a[5], avg = 0, temp = 0; 
    
    // 배열의 원소를 차례로 돌면서 입력받은 값 저장
    for (int i = 0; i < 5; i++) {
        scanf("%d", &a[i]);
        avg += a[i]; // 배열의 원소를 모두 더한 값을 avg 변수에 저장 
    }

    // 배열의 원소들 순회하며 해당하는 순서의 값과 다음 값 비교하여 작은 값을 앞으로 배치
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5 - 1; j++) {
            // 앞 원소와 다음 원소를 비교했을 때 앞 원소가 크면
            if (a[j] > a[j + 1]) {
                temp = a[j + 1]; // 임시 공간에 다음원소를 저장한 뒤
                a[j + 1] = a[j]; // 다음 원소는 앞 원소로 저장
                a[j] = temp; // 임시 공간에 저장된 값이 앞 원소에 저장
            }
        }
    }
    printf("%d\n", avg / 5); // 앞서 구한 배열들의 합을 입력받은 수만큼 나눠 평균값 구하기 
    printf("%d", a[2]); // 중앙값은 배열의 5번째 3번째 원소인 a[2]에 존재 
}

 

예제 입출력 결과

예제 입력
예제 출력

728x90