2019. 8. 19. 12:45
728x90

문제 번호: 2108

문제 제목: 통계학

문제 주소: https://www.acmicpc.net/problem/2108


문제 내용

입력된 N개의 수에 대한 산술평균, 중앙값, 최빈값, 범위를 출력한다.
산술평균 - 소수 첫째 자리에서 반올림
중앙값 - 요소가 홀수 일 때는 중앙에 위치한 값, 짝수일 때는 중앙에 위치한 두 수의 평균
최빈값 - 가장 많이 출현한 수. 여러 개 있을 경우 두 번째로 작은 값


테스트 케이스

5
1
3
8
-2
2

2
2
1
10

1
4000

4000
4000
4000
0

5
-1
-2
-3
-1
-2

-2
-2
-1
2


문제 풀이

입력하는 횟수가 50만개로 많고, 반대로 정수의 범위는 -4000 ~ 4000으로 좁은 편이다. 
입력 순서를 고려하지 않아도 되고 중복값이 존재하므로 인덱스를 만들고 이를 바탕으로 계산하는 것이 좋다.

산술평균 - 합계가 양수일 경우에는 +0.5를, 음수일 경우에는 -0.5를 한 후에 int로 형변환하면 된다.
중앙값 - N / 2개에 해당하는 인덱스 값을 출력한다.
최빈값 - 오름차순으로 인덱스를 탐색한다. 현재 최빈값과 같을 경우 중복 여부를 확인하고, 더 높은 수가 나오면 중복 체크를 초기화한다.
최빈값 - 입력받는 시점에 min, max를 구하고 max - min을 출력한다.


풀이 코드


728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 11650 - 좌표 정렬하기  (0) 2019.08.19
백준 1427 - 소트인사이드  (0) 2019.08.19
백준 10989 - 수 정렬하기 3  (0) 2019.08.13
백준 2751 - 수 정렬하기 2  (0) 2019.08.13
백준 2750 - 수 정렬하기  (0) 2019.08.13
Posted by 아야카