[알고리즘] 백준 문제 풀이 - 2108 통계학

2022. 4. 23. 19:37· PS 연습
목차
  1.  
  2. 👩🏻‍💻 문제링크
  3. ✍️ 아이디어
  4. 불통과
  5.  
더러워서 화났던 정렬 문제

 

👩🏻‍💻 문제링크

[백준 2108] 더하기 사이클 (cpp)

https://www.acmicpc.net/problem/2108

 

2108번: 통계학

첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.

www.acmicpc.net

✍️ 아이디어

1. 문제 이해

  • 산술평균에서 주의할점 -0이 안나오게 해야함
  • 최빈값 구하기 쉽지 않을것이다

2. 최빈값 구하기

값을 입력 받으면서 그 값에 해당하는 인덱스가 +1 되어 나중에 모든 숫자의 갯수를 찾음

✍️소스코드

불통과

#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
vector<int> arr;
int main() {
    int num,tmp,range,middle = 0,most_val,mean = 0;
    int most = -9999;
    int number[8001] = {0,};
    bool not_first = false;
    cin >> num;
    for(int i = 0; i < num; i++)
    {
        cin >> tmp;
        arr.push_back(tmp);
        mean += tmp;
        number[tmp+4000]++;
    }
    sort(arr.begin(),arr.end());
    for(int i = 0; i < 8001; i++)
    {
        if(number[i] == 0)
            continue;
        if(number[i] == most)
        {
            if(not_first)
            {
                most_val = i - 4000;
                not_first = false;
            }
        }
        if(number[i] > most)
        {
            most = number[i];
            most_val = i - 4000;
            not_first = true;
        }
    }
    middle = arr[arr.size()/2];
    mean = round((float)mean / num);
    range = arr.back() - arr.front();
    cout << mean << '\n' << middle << '\n' << most_val << '\n' << range;
}

 

 

다른사람의 코드

-> 뭔가 이런경우에 bool 타입을 쓰는구나 느낌을 알아둬 (가장 작은것에서 2번째니까 그 뒤는 확인할필요가 없게 만들어버림)

 

https://gaeunhan.tistory.com/65

 

[C++ 백준] 2108 통계학

블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 다음 4가지의 기본 통계 값을 구하는 프로그램을 작성하시오. 단, N(1 <=N <=500,000)은 홀수라고 가정한다. 산술평균 : N개의

gaeunhan.tistory.com

 

 

체감난이도 걸린시간 참고 사용 문법
하(구현자체는 쉬움) ? cmath 사용법  

 

'PS 연습' 카테고리의 다른 글

[PS 연습 - 정렬] 백준 문제 풀이 - 11651 좌표 정렬하기 2  (0) 2022.04.25
[자료구조] 백준 문제 풀이 - 2075 N번째 큰 수  (0) 2022.04.24
[자료구조] 백준 문제 풀이 - 2346 풍선 터뜨리기  (0) 2022.04.16
[자료구조] 백준 문제 풀이 - 1021 회전하는 큐  (0) 2022.04.16
[자료구조] 백준 문제 풀이 - 1158 요세푸스 문제  (0) 2022.04.10
  1.  
  2. 👩🏻‍💻 문제링크
  3. ✍️ 아이디어
  4. 불통과
  5.  
'PS 연습' 카테고리의 다른 글
  • [PS 연습 - 정렬] 백준 문제 풀이 - 11651 좌표 정렬하기 2
  • [자료구조] 백준 문제 풀이 - 2075 N번째 큰 수
  • [자료구조] 백준 문제 풀이 - 2346 풍선 터뜨리기
  • [자료구조] 백준 문제 풀이 - 1021 회전하는 큐
생선묵김치찌개
생선묵김치찌개
생선묵김치찌개
준혁's 코딩 연구기록
생선묵김치찌개
전체
오늘
어제
  • 분류 전체보기 (96)
    • Java (5)
    • Spring Boot (3)
    • 자료구조 (8)
    • 네트워크 (4)
    • 데이터베이스 (4)
    • 기술적 고민 (17)
      • Side Match (13)
      • 자리나따 (4)
    • C++ (3)
    • Algorithm (4)
    • PS 연습 (38)
    • 잡동사니 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • sentry
  • 예외처리
  • backend
  • 자료구조
  • CPP
  • DN
  • 브루트 포스
  • 양방향 연결 리스트
  • 파일 업로드
  • 큐
  • 재귀
  • dp
  • aws rds
  • 이진트리
  • open api
  • 원형 연결 리스트
  • 수식트리
  • 열혈 자료구조
  • 스택
  • Stream
  • 해커톤
  • 백준
  • 백준 골드
  • 배열 리스트
  • 단순 연결 리스트
  • ㄱ
  • 스프링
  • 트리
  • 완전탐색
  • 알고리즘

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
생선묵김치찌개
[알고리즘] 백준 문제 풀이 - 2108 통계학
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.