코드포스(CodeForce)
Codeforces Round #467 (Div. 2) - A. Olympiad
cepiloth
2018. 8. 17. 18:13
반응형
1. 문제
2. 알고리즘
키워드 - 구현
* 문제 접근
입력 받은 원소의 집합을 만든다.
제약 조건은 1 명이라도 학위를 수여하게 되면 모두가 학위를 수여 받아야 한다.
score 가 0 인 사람은 학위를 수여 받지 못한다.
[입력 받은 원소 중에 0 값이 있는지 검사하는 FLAG]
[0이 아닌 score 만 저장 한다]
[map 자료구조에 score를 넣어 중복되는 원소를 제거 한다 꼼수]
map에 사이즈를 출력
3. 코드
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include<stdio.h> #include<string.h> #include<stdlib.h> #include<queue> #include<stack> #include<math.h> #include<vector> #include<map> #include<set> #include<stdlib.h> #include<cmath> #include<string> #include<algorithm> #include<iostream> #include <functional> // greater 사용 위해 필요 using namespace std; int main() { long long n; cin >> n; vector<int> arr; //[입력 받은 원소 중에 0 값이 있는지 검사하는 FLAG] bool hasZero = false; for (int i = 0; i < n; i++) { int count; cin >> count; if (count == 0) hasZero = true; else { // [0이 아닌 score 만 저장 한다] arr.push_back(count); } } // [map 에다가 자료를 넣어 중복되는 원소를 제거 한다 꼼수] map<int, int> mm; for (int i = 0; i < arr.size(); i++) { mm[arr[i]]++; } int sol = mm.size(); cout << sol << endl; return 0; } | cs |
반응형