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
- 스프링
- codeup
- react
- C++
- Redux
- react-redux
- 정렬
- js to ts
- Spring
- 분할메모리할당
- 타입스크립트
- memory
- 협업
- web
- 기초100제
- 공부
- Java
- Operating System
- 백준
- OS
- 코드업
- CPU 스케줄링
- 알고리즘
- 파이썬
- 토이프로젝트
- 프로그래머스
- 리덕스장바구니
- error
- 자료구조
- 일상
Archives
- Today
- Total
감자튀김 공장🍟
[백준/2108] 통계학 (with 파이썬) 본문
반응형
✔ 문제
✔ 풀이
🍩 오답 코드 (로직 실수)
import sys
from collections import Counter
input = sys.stdin.readline
n = int(input())
nums = []
for _ in range(n):
nums.append(int(input()))
nums.sort()
count = Counter(nums).most_common()
count.sort(key=lambda x: -x[1])
median = 0
if len(count) > 1:
median = count[1][1]
else:
median = count[0][1]
print(round(sum(nums) / n))
print(nums[n//2])
print(median)
print(max(nums) - min(nums))
1. 이미 Counter(nums).most_common()에서 빈도수가 높은 순으로 표시되어 count에 저장이 되는데 그걸 또 count.sort로 정렬한 점..
2. if/else문에서 count 길이가 1보다 크면 count[1][1]을 출력하는데 만약 k를 10번 입력 받은 경우가 아니라면 count의 길이는 항상 1보다 크다.
ㄴ 따라서 if/else문 구조를 아래 정답 코드처럼 바꿔야함
3. 이미 최소 ~ 최대 순서로 정렬이 되어있기 떄문에 max, min 함수를 쓸 필요가 없다.
🍟 정답 코드
import sys
from collections import Counter
input = sys.stdin.readline
n = int(input())
nums = []
for _ in range(n):
nums.append(int(input()))
nums.sort()
count = Counter(nums).most_common()
print(round(sum(nums) / n))
print(nums[n//2])
if len(count) > 1:
if count[0][1] == count[1][1]:
print(count[1][0])
else:
print(count[0][0])
else:
print(count[0][0])
print(nums[-1] - nums[0])
✔ 설명
다들 최빈값에서 많이 막혔을것이다... 일단 나부터...ㅎ
1. Counter(nums).most_common()으로 이미 빈도수가 높은 순으로 정렬이 되어있다. (내림차순으로)
2. count의 길이가 1보다 크고, count[0][0]과 count[1][0]의 빈도수가 같다면 두번째로 빈도순이 높은 count[1][0]을 출력한다.
ㄴ count[n][0]이 입력 받은 숫자, count[n][1]이 빈도수이다.
3. 빈도수가 같지 않다면 최빈값은 하나이기 때문에 count[0][0]을 출력한다.
4. count의 길이가 딱 1인 경우도 있을 수 있기 때문에 else문으로 예외처리를 해준다.
ㄴ 위에서 말했던 케이스이다. 한 숫자를 한 번 이상 입력받은 경우
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[백준/11650] 좌표 정렬하기 (with 파이썬) (0) | 2022.11.14 |
---|---|
[백준/1427] 소트인사이드 (with 파이썬) (0) | 2022.11.13 |
[백준/10989] 수 정렬하기 3 (with 파이썬) (0) | 2022.11.11 |
[백준/2751] 수 정렬하기 2 (with 파이썬) (0) | 2022.11.10 |
[백준/25305] 커트라인 (with 파이썬) (0) | 2022.11.09 |
Comments