Coding Test

중앙값 구하기

honey-vision 2024. 6. 17. 00:42

문제설명
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.

 

 

순서

1. 배열 안에 들어있는 값들을 비교한다.

2. 비교해서 값이 큰 경우 순서를 바꾼다.

ex) 0번과 1번을 비교해서 0번이 크다면 1번과 자리를 바꾼다. 

3. 맨 뒤부터는 정렬이 된 것이므로 다음 반복문에서는 고려하지 않는다.

4. 정렬 후에 중앙값 anwer을 반환한다.

 

자리를 바꿀 때는 변수를 하나 새로 생성해서 그 변수에 값을 담아주고 하나씩 옮긴다.

전체 코드는 다음과 같다.

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// array_len은 배열 array의 길이입니다.
int solution(int array[], size_t array_len) {
    int answer = 0;
    int a = 0;
    for(int i=0; i<array_len; i++){
        for(int j=0; j<(array_len-1)-i; j++){
            if(array[j]>array[j+1]){
                a = array[j];
                array[j] = array[j+1];
                array[j+1] = a;
            }
        }
    }
    answer = array[array_len/2];
    return answer;
}

'Coding Test' 카테고리의 다른 글

옷 가게 할인 받기  (0) 2024.06.20
피자 나눠 먹기 (1)  (0) 2024.06.19
중복된 숫자 개수  (0) 2024.06.14
문자 리스트를 문자열로 변환하기  (0) 2024.06.09
문자열 섞기  (0) 2024.06.08