YunDev

백준 2587번[C] - 상세 풀이 본문

Programming/Baekjoon Program

백준 2587번[C] - 상세 풀이

S준 2024. 1. 14. 21:18
 

2587번: 대표값2

어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 +

www.acmicpc.net

 


#include <stdio.h>

int main() {
    int sum = 0, tmp;
    int num[5];

    // 배열에 값 입력
    for(int i = 0; i < 5; i++) {
        scanf("%d", &num[i]);
        sum += num[i];
    }

    // 버블 정렬
    for (int i = 0; i < 5 - 1; i++) {
        for (int j = 0; j < 5 - i - 1; j++) {
            if (num[j] > num[j + 1]) {
                // 두 원소 교환
                tmp = num[j];
                num[j] = num[j + 1];
                num[j + 1] = tmp;
            }
        }
    }

    // 평균 출력
    printf("평균: %d\n", sum / 5);

    // 정렬된 배열에서 중간 값 출력
    printf("중간 값: %d", num[2]);

    return 0;
}

 

풀이 :  문제의 핵심은 5개의 값을 입력받고 그 입력받은 값을 오름차순으로 정렬하는 것입니다.
크기가 작은 순서부터 정렬하기 위해서 버블 정렬을 사용했습니다.
버블정렬 알고리즘은 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘입니다. 이웃한 두 원소를 비교하고, 만약 왼쪽이 오른쪽보다 크면 그 두 원소를 교환하는 방식입니다. 따라서 평균값은 총 합에서 5로 나누어주면 구할 수 있고, 반복문을 돌고나면 크기 순서대로 정렬된 배열에서 중간 값은 인덱스상으로 2번째이므로 2번째를 출력하면 중간 값을 구할 수 있습니다.

'Programming > Baekjoon Program' 카테고리의 다른 글

백준 2501번[C] - 상세 풀이  (0) 2024.01.16
백준 25305번[C] - 상세 풀이  (1) 2024.01.15
백준 5597번[C] - 풀이  (0) 2024.01.13
백준 10807번[C] - 상세 풀이  (0) 2024.01.12
백준 27433번[C] - 상세 풀이  (0) 2024.01.11