-
728x90
* 생각하지 못한 점
- 음수를 반 올림하면 0이 아니라 -0이 되는 경우가 생길 수 있음
- max와 같은 값이 나온 경우, second 변수를 true로 만들어줘서 두 번 나온 값임을 판단하는데,
1,1,2,2,3,3,3,4,4,4와 같이 이미 2에서 second가 true로 바뀌었는데 새로운 max가 들어갈때
다시 second를 false로 하지 않았어서 4까지 가지 않았었음ㅜ#include <iostream> #include <vector> #include <algorithm> #include <map> #include <numeric> #include <math.h> using namespace std; int main() { // 입출력 속도 개선 cin.tie(NULL); ios_base::sync_with_stdio(false); int N; cin >> N; vector<int> v(N); map<int, int> num; for (int i = 0; i < N; i++) { cin >> v[i]; if (num.count(v[i]) != 0) num[v[i]]++; else num.insert({ v[i], 1 }); } int max_num = 0; // 키 int max = 0; // 값 bool second = false; // 최대값구하기 for (auto &m : num) { if (m.second > max) { max = m.second; max_num = m.first; second = false; } else if (second == false && m.second == max) { second = true; max = m.second; max_num = m.first; } } if (round(accumulate(v.begin(), v.end(), 0) / (double)N) == -0) cout << 0 << "\n"; else cout << round(accumulate(v.begin(), v.end(), 0) / (double)N) << "\n"; sort(v.begin(), v.end()); cout << v[N/2] << "\n"; cout << max_num << "\n"; cout << v.back() - v.front(); return 0; }
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[18512] 백준 - 점프 점프(JAVA) (0) 2020.08.31 [10814] 백준 - 나이순 정렬(C++) (0) 2020.04.30 [1436] 백준 : 영화감독 숌(C++) (0) 2020.04.27 [1018] 백준 : 체스판 다시 칠하기(C++) (0) 2020.04.27 [7568] 백준 : 덩치(C++) (0) 2020.04.27 댓글