728x90
문제
풀이
from collections import Counter
import sys
N=int(sys.stdin.readline())
list1=[]
for i in range(N):
list1.append(int(sys.stdin.readline()))
list1.sort()
print(round(sum(list1)/len(list1)))
print(list1[len(list1)//2])
c_n=Counter(list1).most_common()
if len(c_n)>1:
if c_n[0][1]==c_n[1][1]:
print(c_n[1][0])
else:
print(c_n[0][0])
else:
print(c_n[0][0])
print(max(list1)-min(list1))
파이썬 내장모듈의 counter 함수와 sys를 사용해야 풀리는 문제.
처음에는 for문 으로 count()랑 입력값 하나하나 구하는 코드짜다가
이건 아닌 것 같아서 찾아보니 빈도수를 간편하게 구할 수 있는 counter 함수가 존재했다.
IT초심자인 내가 파이썬의 모든 함수를 아는 것이 아니니 좀 더 효율적으로 공부하려면 브루트 포스 문제가 아닌 이상
간단한걸 구현하는데 너무 복잡한 반복문이 필요하면 해당 함수가 존재하는지 여부부터 알아봐야겠다.
counter 함수를 사용해도 시간초과가 떠서 보니 input()으로 해놔서 시간초과가 된 것이었다.
input()이 너무 손에 익어버려서 풀릴 문제도 안풀리는 경우가 간혹 있다.
sys.stdin.readline()를 사용하는 습관을 들여야겠다.
'PS' 카테고리의 다른 글
[백준] 10816번 : 숫자 카드 2(counter)- 파이썬[Python] (0) | 2022.01.13 |
---|---|
[백준] 10814번 : 나이순 정렬(sort 함수 key)- 파이썬[Python] (0) | 2022.01.11 |
[백준] 5430번 : AC(덱)- 파이썬[Python] (0) | 2022.01.10 |
[백준] 18258번 : 큐2(큐)- 파이썬[Python] (0) | 2022.01.08 |
[백준] 1874번 : 스택 수열(스택)- 파이썬[Python] (0) | 2022.01.08 |
댓글