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
- 분할 정복
- github action
- 브루트포스
- 재귀
- 다이나믹프로그래밍
- Spring
- CI/CD
- 역방향 반복자
- 그래프
- AWS
- TCP
- 스프링
- 그리드 알고리즘
- 컴퓨터 네트워크
- 백준
- GIT
- 분할정복
- 다이나믹 프로그래밍
- 이분탐색
- 자바
- dfs
- 그리드
- 트리
- 자료구조
- SQL
- 도커
- HTTP
- 알고리즘
- BFS
- 순열
Archives
- Today
- Total
코딩성장스토리
백준 2108번:통계학 본문
https://www.acmicpc.net/problem/2108
2108번: 통계학
첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.
www.acmicpc.net
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.
출력
첫째 줄에는 산술평균을 출력한다. 소수점 이하 첫째 자리에서 반올림한 값을 출력한다.
둘째 줄에는 중앙값을 출력한다.
셋째 줄에는 최빈값을 출력한다. 여러 개 있을 때에는 최빈값 중 두 번째로 작은 값을 출력한다.
넷째 줄에는 범위를 출력한다.
#include<iostream>
#include<vector>
#include<cmath>
#include<string>
#include <algorithm>
#include<set>
#define PI 3.1415926535
using namespace std;
int cnt[8001] = { 0 }; //빈도수 알기 위한 배열
int main()
{
multiset<int> ms; //multiset 중복된값 정렬
vector<int> st; //중간값 구하기 위한 배열
int n, t;
double sum = 0;
cin >> t;
int min = 4000;
int max = -4000;
for (int i = 0; i < t; i++) {
cin >> n;
ms.insert(n);
cnt[n+4000]++;
sum += n;
if (max < n)
max = n;
if (min > n)
min = n;
}
multiset<int>::iterator iter;
for (iter = ms.begin(); iter != ms.end(); iter++) { //st배열에 정렬되게 삽입
st.push_back(*iter);
}
int maxin = 0; //최빈수
int in = 0; //빈수
for (int i = min + 4000; i <= max + 4000; i++) { //최빈수값 구하기
if (cnt[i] > maxin)
maxin = cnt[i];
}
for (int i = min + 4000; i <= max + 4000; i++) { //최빈수 구하기
if (maxin == cnt[i]) {
in = i;
break;
}
}
for (int i = in+1; i <= max + 4000; i++) { //같은 최빈수 두번쨰 작은 수 구하기
if (maxin == cnt[i]) {
in = i;
break;
}
}
cout << round(sum/t) << '\n' << st[t / 2] << '\n' << in-4000 << '\n' << max - min;
return 0;
}
'백준 코딩' 카테고리의 다른 글
백준 11650:좌표 정렬하기 (0) | 2021.09.25 |
---|---|
백준 1181번 :단어정렬 (0) | 2021.09.25 |
백준 10989번 : 수 정렬하기3( count 정렬) (0) | 2021.09.25 |
백준 1018번:체스판 다시 칠하기 (0) | 2021.09.24 |
백준 9020번:골드바흐의 추측 (에라토스테네스의 체) (0) | 2021.09.23 |