Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- stack&que
- stateless
- Q objects
- TDD
- ORM
- Stack
- pytest
- dictionary
- Git
- SQL
- AWS
- Query
- stateful
- combinations
- Unit Testing
- postreSQL
- Programmers
- Django
- Gunicorn
- permutations
- utils
- HTTP 완벽 가이드
- ws
- was
- Bruteforce
- greedy
- codecov
- algorithm
- 백준
- Python
Archives
- Today
- Total
해피 코딩!
[백준] 2108 통계학 본문
from collections import defaultdict
import statistics
import sys
dic = defaultdict(int)
lst = []
for _ in range(int(sys.stdin.readline())):
value = int(sys.stdin.readline())
lst.append(value)
dic[value] +=1
# 1. 산술 평균 -> 소수점 이하 앞 자리 반올림 값
sum_var = 0
div = 0
for k, v in dic.items():
div += v
sum_var += (k*v)
print(round(sum_var/div))
# 2. 중앙 값
print(statistics.median(lst))
# 3. 최빈값 여러 개 있을 때에는 최빈값 중 두 번째로 작은 값
sorted_dic= sorted(dic.items(), key= lambda x:(x[1], -x[0]), reverse=True)
if len(sorted_dic) ==1:
print(sorted_dic[0][0])
else:
if sorted_dic[0][1] == sorted_dic[1][1]:
print(sorted_dic[1][0])
else:
print(sorted_dic[0][0])
page_4 = 0
sorted_dic = sorted(dic, key=lambda x:x)
for i in range(sorted_dic[0], sorted_dic[-1]):
page_4 +=1
print(page_4)
푸는데 한 시간 이상의 시간이 걸릴 줄 예상하지 못한 문제이다
- 산술 평균 -> 소수점 이하 앞 자리 반올림 값
반올림 값을 체크하지 못한 실수가 컸다.
카운트를 하기 위하여 defaultdict을 사용하였는데 최빈값을 구하는 세 번째 출력 값에서는 어쩔 수 없이 리스트를 사용하였으며 메모리 초과가 나올 줄 알았는데 다행히 나오지 않았다.
'알고리즘' 카테고리의 다른 글
[백준] 9012번 괄호 (0) | 2021.01.06 |
---|---|
[백준] 1541번 잃어버린 괄호 (0) | 2021.01.01 |
[백준] 11399 ATM (0) | 2020.12.31 |
[백준] 12865번 평범한 배낭 (0) | 2020.12.30 |
[백준] 10989번 수 정렬하기 3 (0) | 2020.12.28 |
Comments