https://www.acmicpc.net/problem/2108
문제설명
- 산술평균 : N개의 수들의 합을 N으로 나눈 값
- 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값
- 최빈값 : N개의 수들 중 가장 많이 나타나는 값
- 범위 : N개의 수들 중 최댓값과 최솟값의 차이
풀이설계
- 산술형은 sum / 반올림은 round
- 중앙값은 배열의 중앙값 // 2
- 최빈값
- 배열의 길이가 1 이하인 경우 0번째 값 출력
- 배열의 길이가 1 초과인 경우 Counter 최빈값을 계산한뒤 역순으로 정렬해서
- 첫번째값과 0번째 value 값을 비교해서 값이 같다면 첫번째 값을 출력
- 그렇지않다면 0번째 값을 출력한다.
- 범위 0번째와 가장 끝에 있는 값의 차이를 계산
import sys
from collections import Counter
input=sys.stdin.readline
n = int(input())
nums = [int(input()) for _ in range(n)]
nums.sort()
print(round(sum(nums) / n)) # 산술평
print(nums[(len(nums)) // 2])
if len(nums) <= 1:
print(nums[0])
else:
cnts = sorted(Counter(nums).items(), key=lambda x: x[1], reverse=True)
if cnts[0][1] == cnts[1][1]:
print(cnts[1][0])
else:
print(cnts[0][0])
print(nums[n-1] - nums[0])
'코딩테스트 > 백준' 카테고리의 다른 글
[Python] 백준 15650번. N과 M(2) (0) | 2023.12.26 |
---|---|
[Python] 백준 12015번. 가장 긴 증가하는 부분 수열2 (0) | 2023.12.19 |
[Python] 백준 11651번. 좌표 정렬하기 2 (0) | 2023.12.18 |
[Python] 백준 1932번. 정수 삼각형 (0) | 2023.12.11 |
[Python] 백준 1149번. RGB거리 (1) | 2023.12.07 |