더러워서 화났던 정렬 문제
👩🏻💻 문제링크
[백준 2108] 더하기 사이클 (cpp)
https://www.acmicpc.net/problem/2108
✍️ 아이디어
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
체감난이도 | 걸린시간 | 참고 | 사용 문법 |
하(구현자체는 쉬움) | ? | 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 |