중앙값 구하기

2024. 7. 5. 18:00코딩테스트 입문

https://school.programmers.co.kr/learn/courses/30/lessons/120811

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명
중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 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입니다.

중앙값을 구하는 문제입니다.

이 문제를 푸는 방법은 간단합니다. 문제에 주어진 조건에 따르면 배열은 언제나 홀수이므로, 가운데 값은 항상 하나뿐이죠. 그리고 그 값은 (배열의 길이 // 2)와 동일합니다.

물론 배열이 정렬되어 있다는 조건은 없습니다. 그러면 저희가 정렬해주면 되겠죠?

 

순서를 정리해보자면 다음과 같습니다.

1. 배열을 정렬한다.

2. (배열의 길이 // 2)인 인덱스의 값을 가져온다.

 

파이썬으로 문제를 풀어보겠습니다.

def solution(array):
    answer = sorted(array)[len(array) // 2]
    return answer

먼저 array를 정렬합니다. 오름차순, 내림차순 전부 상관없습니다. 가운데는 항상 동일하니까요.

그다음, len(array) // 2를 인덱스로 사용하여 answer 값에 반환합니다.

 

정렬하고 -> 가운데값 추출. 이 두 가지 프로세스만 진행하면 되는 간단한 문제였습니다.

'코딩테스트 입문' 카테고리의 다른 글

짝수는 싫어요  (0) 2024.07.07
최빈값 구하기  (0) 2024.07.06
나머지 구하기  (0) 2024.07.04
배열 두 배 만들기  (0) 2024.07.03
분수의 덧셈  (0) 2024.07.02