백준 2108 - 통계학(파이썬)

박진우·2022년 9월 25일
0

알고리즘

목록 보기
37/89

💡 백준 2108 - 통계학

◽ 문제




◽ 입력 & 출력




◽ 풀이

  • 최빈값을 구하기위해서 개수를 체크할 때 Counter 라는 라이브러리를 사용하는게 편리하다.

  • 나머지는 평균,중앙값,범위(최댓값-최솟값)을 구하면 되는 문제이다.


  • 최빈값 를 구하기 위해서는 collections 모듈의 Counter 클래스 를 사용한다.

  • sys.stdin.readline()을 사용해 입력을 받는다.

  • 첫째 줄에 수의 개수(N)를 입력받는다.




  • 평균중앙값을 구하기위한 리스트li빈리스트로 초기화한다.

  • 입력받은 수를 append()로 추가한다.




✅ 산술평균

  • round()함수 를 이용해 평균값 반올림 해준다.



✅ 중앙값

  • 오름차순으로 정렬 후 중간 값을 출력한다.




✅ 최빈값

  • 각 숫자와 빈도 수를 확인

cnt = Counter(li).most_common()
  • 만약 most_common() 즉 최빈값이 2개 이상이면

  • if문으로 0번째 key(요소)의 개수 1번째 key(요소)의 개수 같으면 "여러 개 있을 때에는 최빈값 중 두 번째로 작은 값을 출력한다" 라고 했기 때문에 2번째 요소를 출력한다.

  • 21번째 줄 else: 최빈값이 하나일 경우 0번 째 요소출력한다.

  • 24번째 줄 else: 첫번 째 요소 출력.




✅ 범위

  • 범위 = 최댓값-최솟값




✅ 전체코드




💡 배운점

◽ Counter 객체

  • Counter는 dict의 서브클래스이다.

  • 이름에서 알 수 있듯이 요소의 갯수를 세어준다.

  • key value 형태로 저장된다.

    • key는 요소 이고, value는 요소의 갯수 이다.
  • 덧셈 뺄셈 연산이 가능하다.


◾ most_common 함수

  • most_common()는 등장한 횟수내림차순으로 정리하여 위와 같이 보여준다. 

    각 튜플의 첫 번째 요소 는 numbers에 등장하는 숫자 이고, 두 번째 요소 는 각 숫자가 등장한 횟수

  • 최빈값을 구하려면 다음과 위와 같이 하면된다!




◽ round()

round(number [, ndigits])

  • 소수점을 n번째 까지만 표현하고 반올림을 하고싶을때, round 함수를 사용한다.
>>> n = 7/15
>>> n
0.4666666666666667

>>> round(n,2)
0.47

>>> round(n,4)
0.4667

>>> round(n)
0

>>> type(round(n))
<class 'int'>

>>> round(1.77777777777777)
2
  • 두번째매개변수를 비우면 소수점 첫번째자리 를 반올림

0개의 댓글