프로그래머스 풀이

[c++]중앙값 구하기

Iam_noob 2024. 10. 21. 16:01
728x90
반응형

출처: 프로그래머스


문제 설명

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

 

제한사항

  • array의 길이는 홀수입니다.
  • 0 < array의 길이 < 100
  • -1,000 < array의 원소 < 1,000

 

입출력 예

array result
[1, 2, 7, 10, 11] 7
[9, -1, 0] 0

입출력 예 설명

입출력 예 #1

  • 본문과 동일합니다.

입출력 예 #2

  • 9, -1, 0 오름차순 정렬하면 -1, 0, 9이고 가장 중앙에 위치하는 값은 0입니다.

문제풀이

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> array) {
	//정렬
    sort(array.begin(),array.end());
    //배열의 중앙 값
    int answer = array.size()/2;
    return array[answer];
}



배열의 값을 오름차 순으로 정렬 한 후, 중앙에 위치한 값을 구하면 되는 문제로 보인다.

다만, 배열의 길이가 홀수여야지만 가능한데 이는 문제 설명에서 제한 사항에 길이가 홀수라고 되어있어서 가능한 풀이이다.

정렬을 쉽게 해주는 sort 기능은 헤더파일 algorithm에 속해 있다. 배열 처음부터 끝까지 설정하면 배열내 값이 정렬된다.

sort(배열 시작 인덱스, 정렬할 마지막 인덱스, 정렬 함수);

위와 같은 형식으로 쓰여진다. 기본적으로 오름차순으로 정렬된다.

728x90
반응형

'프로그래머스 풀이' 카테고리의 다른 글

[c++]같은 숫자는 싫어  (3) 2024.10.24
[c++]최빈값 구하기  (1) 2024.10.21
[c++]다음 큰 숫자  (0) 2024.10.17
[c++]JadenCase 문자열 만들기  (0) 2024.10.12
오랜기간 보호한 동물(2)  (0) 2024.04.03