백준 알고리즘 2108 통계학 (python)

2021. 7. 29. 11:04·Algorithm (PS)
728x90

- 계속 시간 초과가 남

- 틀린 원인 : 최빈값을 구하는 데에 너무 많은 시간 소요 

- 이를 해결할 방법... 구글링해보니까 Collection 모듈이 있음 ! 

- 파이썬 서타일은 함수로 이쁘게 쓰는건가보다 

틀린 풀이 

 

import sys
n = int(sys.stdin.readline())

numbers = []
for i in range(n):
    numbers.append(int(input()))

# 평균
sum = 0
for i in numbers:
    sum += i
print(round(sum/n, 1))

# 중앙값
sort_numbers = numbers.sort()
print(sort_numbers[len(numbers)//2])

# 최빈
count = {}
for i in range(len(numbers)):
    count[i] += 1


most = max(count.values())
max_list = []

for key, value in count.items():
    if value == most:
        max_list.append(key)

if len(max_list) > 1:
    first = min(max_list)
    max_list.remove(first)
    second = min(max_list)
    print(second)
else:
    print(min(max_list))




# 범위
a = max(numbers) - min(numbers)
print(a)

 

이게 그 시간초과 나는 풀이이다 ㅠㅠ

 

두번째 시도 ! : Collection 모듈에 최빈값 세어주는게 있다 ㅋㅋㅋ 헐 파이썬.. 

근데 이런식으로 코딩테스트 준비해도 괜찮을까 ? 파이썬에는 너무 간편한 라이브러리가 많은데 시간이 느리다

맞은 풀이 !

import sys
from collections import Counter

n = int(sys.stdin.readline())

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

# 평균
print(round(sum(numbers)/n))

# 중앙값
numbers.sort()
print(numbers[len(numbers)//2])

# 최빈
count_dict = Counter(numbers)
modes = count_dict.most_common()

if len(modes) > 1:
    if modes[0][1] == modes[1][1]:
        mod = modes[1][0]
    else:
        mod = modes[0][0]
else:
    mod = modes[0][0]

print(mod)

# 범위
a = max(numbers) - min(numbers)
print(a)

 

Counter 는 딕셔너리 형태로 각각의 요소가 몇개씩 등장했는지 세알려주고

most_common()은 최빈값을 리스트에 담긴 튜플 형태로 반환한다 !!! 

 

if 문 다음에는 최빈값이 2개 이상인경우 두번째로 작은 값을 출력해야 하는데 이미 오름차순 정렬이 되어있으므로, 

728x90

'Algorithm (PS)' 카테고리의 다른 글

[프로그래머스/카카오] 외벽점검  (0) 2021.10.31
백준 15868 치킨배달 파이썬, 삼성 SW 기출문제  (0) 2021.10.26
백준 1697 숨바꼭질 파이썬 풀이  (0) 2021.09.07
백준 1074 파이썬 - Z  (2) 2021.09.07
[백준 1652] 누울자리를 찾아라 파이썬 풀이  (0) 2021.07.19
'Algorithm (PS)' 카테고리의 다른 글
  • 백준 15868 치킨배달 파이썬, 삼성 SW 기출문제
  • 백준 1697 숨바꼭질 파이썬 풀이
  • 백준 1074 파이썬 - Z
  • [백준 1652] 누울자리를 찾아라 파이썬 풀이
minjiwoo
minjiwoo
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
minji's engineering noteData Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
minjiwoo
minji's engineering note
minjiwoo
전체
오늘
어제
  • 분류 전체보기 (613)
    • Data Engineering (42)
      • Apache Spark (11)
      • Databricks & Delta Lake (9)
      • Airflow (3)
      • SQL (6)
      • Trouble Shooting (2)
      • Hadoop (2)
      • MLOps (1)
    • Cloud Engineering (104)
      • AWS (23)
      • Linux 🐧 (29)
      • Docker 🐳 (21)
      • Kubernetes ⚙️ (20)
      • Ansible (10)
    • Computer Science (87)
      • 네트워크 (9)
      • 운영체제 (25)
      • 정보처리기사 (48)
      • CS 기술 면접 스터디 (3)
    • Programming Languages (27)
      • Python (17)
      • C와 C++ (10)
    • Backend (5)
      • Django (2)
    • 프로젝트 (2)
      • 테크포임팩트 (2)
    • iOS (11)
      • 레이블러리 (2)
    • Algorithm (PS) (275)
      • LeetCode (6)
    • 개발일기 (30)
      • 내돈내산 후기🎮 (3)
      • 개발자 취준생 (5)
      • Today I Learned (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Hi there

인기 글

태그

  • 백준
  • AWS
  • BFS
  • 데이터엔지니어
  • Databricks
  • 쿠버네티스
  • EC2
  • 데이터엔지니어링
  • dp
  • 클라우드
  • SPARK
  • 백트래킹
  • linux
  • dfs
  • 운영체제
  • ansible
  • docker
  • 알고리즘
  • Kubernetes
  • Leetcode
  • 데이터브릭스
  • 카카오코딩테스트
  • python
  • 프로그래머스
  • 파이썬
  • 빅데이터
  • 리눅스
  • Swift
  • 코딩테스트
  • 스파크

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
minjiwoo
백준 알고리즘 2108 통계학 (python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.