문제
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;
}
'SWEA > [D1]' 카테고리의 다른 글
[C언어] SWEA 2050 알파벳을 숫자로 변환 (0) | 2022.03.02 |
---|---|
[C언어] SWEA 2056 연월일 달력 (0) | 2022.03.02 |
[D1] SWEA2058 - 자릿수 더하기 (0) | 2021.04.07 |
[D1] SWEA2043 서랍의 비밀번호 (0) | 2021.04.07 |
[D1] SWEA2068 최대수 구하기 (0) | 2020.09.29 |