코딩테스트/백준
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<int, int> > 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 |