반응형
250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 프로그래머스
- 삼성 청년 SW 아카데미
- 삼성청년sw아카데미
- ssafy 7기 교수님
- 프로그래머스 고득점 kit
- SSAFYcial
- 코딩 교육
- ssafy 7기
- 전이학습
- 백준
- DenseNet
- git
- 웹 표준 사이트 만들기
- DP
- Learning
- SWEA
- 싸피 7기 입학식
- SSAFY 8기
- pytorch
- 유니온 파인드
- SSAFY
- 이코테
- bfs
- 백준7576 bfs
- SSAFY 입학식
- ssafy 7기 합격
- 코딩교육
- dfs
- React
- 알고리즘
Archives
- Today
- Total
개미의 개열시미 프로그래밍
[알고리즘] 백준2108 통계학 - 파이썬 본문
728x90
반응형
https://www.acmicpc.net/problem/2108
[풀이 코드]
import collections
from sys import stdin
n = int(stdin.readline())
a_list = [int(stdin.readline()) for _ in range(n)]
a_list.sort()
def average(array):
return round(sum(array) / n) # 산술평균
def center(array):
return array[n//2]
def freq(array):
cnt = collections.Counter(array).most_common()
# 입력값이 5 4 2 2 2 -1 일 경우
# [(2, 3), (-1, 1), (4, 1)]
# 갯수가 많은 원소 기준으로 내림차순으로 정렬이 된다.
if len(cnt) > 1: # 입력 값이 1개 이상인 경우
if cnt[0][1] == cnt[1][1]: # 최빈값이 여러개일 경우
return cnt[1][0]
else: # 최빈값이 하나라면
return cnt[0][0]
else: # 입력 값이 하나라면 바로 출력
return cnt[0][0]
def range(array):
return array[-1] - array[0]
print(average(a_list))
print(center(a_list))
print(freq(a_list))
print(range((a_list)))
- 산술평균 함수인 average()에서 round를 반올림해주는 쓰자!
- 최빈값을 구할 때 collections를 임포트 해서 Counter(). most_common() 함수를 활용했는데 주석에도 써놨듯이 공통으로 들어간 원소에 대해 내림차순으로 정렬을 해준다.
- 예를 들면 입력 값으로 4 2 2 2 -1 다섯 개의 값이 들어간다면 [(2, 3), (-1, 1), (4, 1)] 와 같이 출력된다.
728x90
반응형
'알고리즘 > 정렬' 카테고리의 다른 글
[알고리즘] 백준2751 수정렬하기2 - 파이썬 (0) | 2021.11.18 |
---|---|
[알고리즘] 백준10989 수정렬하기3 - 파이썬 (0) | 2021.11.07 |
[알고리즘] 백준11651 좌표정렬하기2 - 파이썬 (0) | 2021.08.19 |
[알고리즘] 백준11650 좌표 정렬하기 - 파이썬 (0) | 2021.08.19 |
[알고리즘] 백준1181 단어정렬 - 파이썬 (0) | 2021.08.19 |
Comments