회원가입
로그인
Toggle navigation
문제
문제
전체 문제
문제 출처
단계별로 풀어보기
알고리즘 분류
추가된 문제
문제 순위
문제
푼 사람이 한 명인 문제
아무도 못 푼 문제
최근 제출된 문제
최근 풀린 문제
랜덤
출처
ICPC
Olympiad
한국정보올림피아드
한국정보올림피아드시․도지역본선
전국 대학생 프로그래밍 대회 동아리 연합
대학교 대회
카카오 코드 페스티벌
Coder's High
ICPC
Regionals
World Finals
Korea Regional
Africa and the Middle East Regionals
Europe Regionals
Latin America Regionals
North America Regionals
South Pacific Regionals
문제집
대회
1
채점 현황
랭킹
게시판
그룹
더 보기
재채점 기록
블로그
강의
실험실
도움말
BOJ Stack
BOJ Book
전체
공지
자유
질문
오타/오역/요청
게시판 공지
홍보
업데이트
solved.ac
글쓰기
질문 도움말
자주묻는 질문
C++ 아무리 코드를 읽어도 잘못된 부분을 못 찾겠습니다.
2108번 - 통계학
rkdbg11752
2년 전
0
잘못된 부분이나 반례 제시해주시면 감사하겠습니다.
/* 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값: N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 */ #include <iostream> #include <vector> #include <queue> #include <algorithm> #include <cmath> using namespace std; int N; vector<int> arr; int posCnt[4001], negCnt[4001]; int mode() { int ans{}; for (int i{ 4000 }; i >= 0; i--) { ans = max(ans, negCnt[i]); } for (int i{ 1 }; i <= 4000; i++) { ans = max(ans, posCnt[i]); } int fir{}, sec{}; for (int i{ 4000 }; i >= 0; i--) { if (negCnt[i] == ans) { if (fir == 0) fir = -i; else if (sec == 0) sec = -i; } } for (int i{ 1 }; i <= 4000; i++) { if (posCnt[i] == ans) { if (fir == 0) fir = i; else if (sec == 0) sec = i; } } if (sec != 0) return sec; else return fir; } int main() { cin >> N; int integer{}; double sum{}; for (int i{}; i < N; i++) { cin >> integer; arr.push_back(integer); sum += integer; if (integer > 0) { posCnt[integer] += 1; } else { integer *= -1; negCnt[integer] += 1; } } sort(arr.begin(), arr.end()); cout << int(round(sum / N)) << endl; cout << arr[(N - 1) / 2] << endl; cout << mode() << endl; cout << arr[N - 1] - arr[0] << endl; return 0; }
cheolsuhan
2년 전
1
반례
5 -1 -1 0 0 1
댓글을 작성하려면
로그인
해야 합니다.
rkdbg11752 2년 전
잘못된 부분이나 반례 제시해주시면 감사하겠습니다.