이번엔 정렬도 써야하는거 같네 오름차순 정렬은 sort() 니까
정렬을 먼저하고 길이를 구하고 몫을구하면 중앙값이 나오지않을까?
def solution(array):
array.sort()
return array[len(array) // 2]
성능 및 고려 사항
- 시간 복잡도: sort() 함수는 Timsort 알고리즘을 사용하며, 평균 및 최악의 경우 시간 복잡도는 **O(n log n)**입니다. 배열에서 중앙값을 찾는 작업은 **O(1)**이므로, 전체 시간 복잡도는 **O(n log n)**입니다.
- 메모리 사용: array.sort()는 제자리 정렬이므로 추가 메모리 사용이 없습니다.
https://d2.naver.com/helloworld/0315536
https://questionet.tistory.com/61
파이썬의 정렬 알고리즘 Timsort (삽입정렬 + 병합정렬)
참고 1 d2.naver.com/helloworld/0315536 2 파이썬 알고리즘 인터뷰 3 알고리즘 라이프 4 hackernoon.com/timsort-the-fastest-sorting-algorithm-youve-never-heard-of-36b28417f399 5 docs.python.org 파이썬의 정렬 메서드는 크게 두 가
questionet.tistory.com
지금은 제한사항으로 길이가 홀수라고 주어졌지만 만약에 짝수라면 어떻게 될까??
고민해봐야징
def solution(array):
array.sort()
n = len(array)
if n % 2 == 1: # 홀수 길이일 경우
return array[n // 2]
else: # 짝수 길이일 경우
return (array[n // 2 - 1] + array[n // 2]) / 2
뭔가 더 복잡해지긴하는데 길이가 홀수일수만은 없으니..ㅎㅎ
'[study]코딩테스트' 카테고리의 다른 글
[Programmers] 코딩테스트입문 > 문자 반복출력하기 (0) | 2024.10.05 |
---|---|
[Programmers] 코딩테스트입문 > 자릿수 더하기 (0) | 2024.10.05 |
[Programmers] 코딩테스트입문 > 배열 두배 만들기 (0) | 2024.10.01 |
[Programmers] 코딩테스트입문 > 짝수 홀수 개수 (0) | 2024.10.01 |
[Programmers] 코딩테스트입문 > 배열의 평균값 (3) | 2024.10.01 |