SWEA/[D1]

[C언어] SWEA 2063 중간값 찾기

ruming 2022. 3. 2. 00:36

문제

N 개의 점수가 주어졌을 때, 중간값을 출력한다.

N은 항상 홀수이고, 9이상 199 이하의 정수다.

 

버블정렬을 사용했다.

#include <stdio.h>
int main(void) {
    int N;
    scanf("%d", &N);
    int arr[199] = { 0 };
    for (int i = 0; i < N; i++) {
        scanf("%d", &arr[i]);
    }
    int temp = 0;
    for (int i = 0; i < N - 1; i++) {
        for (int j = i + 1; j < N; j++) {
            if (arr[i] > arr[j]) {
                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
    printf("%d", arr[N/2]);
    return 0;
}

 

 

전에 풀었던 코드

#include <stdio.h>
#include <stdlib.h>
int main() {
	int n, *arr;
	int i, j, tmp;
	scanf("%d", &n);
	arr = (int*)malloc(4*n);
	for(i=0; i<n; i++)	scanf("%d", arr+i);
	for(i=0; i<n; i++){
		for(j=0; j<n-1; j++){
			if(arr[i] < arr[j]){
				tmp = arr[j];
				arr[j] = arr[i];
				arr[i] = tmp;
			}
		}
	}
	printf("%d", arr[(n-1)/2]);
	return 0;
}