코딩테스트/백준

2822번 점수계산 (C++)

수박 서리 2022. 11. 12. 13:40
문제 링크 

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

 

2822번: 점수 계산

8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문

www.acmicpc.net

내 풀이

8개 문제의 받은 점수를 받고 그중 점수가 높은 5개를 골라 총점수와 문제 번호를 순차적으로 출력하면된다.

문제 번호 와 점수를 받아야하기 때문에 vector<int(score) , int(number)> 형으로 자료를 받아 정렬했다.

내 코드
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
#include <iostream>
#include <algorithm>
#include <vector>
 
using namespace std;
 
int main()
{
    int sum = 0;
    vector<pair<intint> > vecScore;
    vector<int> number;
 
    for (int i = 1; i <= 8++i) {
        int num;
        cin >> num;
        vecScore.push_back({num, i});
    }
 
    sort(vecScore.begin(),vecScore.end());
    
    for (int i = 3; i <= 7++i) {
        sum += vecScore[i].first;
        number.push_back(vecScore[i].second);
    }
    cout << sum << endl;
 
    sort(number.begin(), number.end());
 
    for (int i = 0; i < 5++i) {
        cout << number[i] << " ";
    }
 
    
    return 0;
}
cs