[python] 백준 2108번

도덩이의 개발 일지·2025년 1월 1일

백준

목록 보기
116/131
post-thumbnail

안녕하세요 !

오늘은 백준 2108번 - 통계학 문제를 들고 왔습니다.


문제 설명


해결 방법

문제를 해결한 방법은 다음과 같습니다.

  1. 입력을 받는다
  2. 산술 평균을 구하고 출력한다
  3. 중앙값을 구하고 출력한다
  4. 최빈값을 구하고 출력한다
  5. 범위를 구하고 출력한다

1. 입력을 받는다

n = int(input())
arr = []
for i in range(n):
    arr.append(int(sys.stdin.readline().strip()))

2. 산술 평균을 구하고 출력한다

print(round(sum(arr)/n))

3. 중앙값을 구하고 출력한다

arr.sort()
print(arr[int(n/2)])

4. 최빈값을 구하고 출력한다

d = {}
for i in range(n):
    if arr[i] in d:
        d[arr[i]] += 1
    else:
        d[arr[i]] = 1
d = sorted(d.items(), key=lambda x:x[1], reverse=True)
max_num = d[0][1]
arr_num = []
for d_element in d:
    if d_element[1] == max_num:
        arr_num.append(d_element[0])
arr_num.sort()
if len(arr_num)> 1:
    print(arr_num[1])
else:
    print(arr_num[0])

5. 범위를 구하고 출력한다

print(arr[-1] - arr[0])

전체 코드

import sys

n = int(input())

arr = []
for i in range(n):
    arr.append(int(sys.stdin.readline().strip()))

print(round(sum(arr)/n))

arr.sort()
print(arr[int(n/2)])

d = {}
for i in range(n):
    if arr[i] in d:
        d[arr[i]] += 1
    else:
        d[arr[i]] = 1

d = sorted(d.items(), key=lambda x:x[1], reverse=True)
max_num = d[0][1]
arr_num = []
for d_element in d:
    if d_element[1] == max_num:
        arr_num.append(d_element[0])

arr_num.sort()
if len(arr_num)> 1:
    print(arr_num[1])
else:
    print(arr_num[0])

print(arr[-1] - arr[0])
profile
말하는 감자에서 개발자로 ( ´͈ ᵕ `͈ )◞♡

0개의 댓글