1. 최종 점수 구하기 : 참가자의 점수를 배열에 저장 → sort()로 내림차순 정렬
sort(input_score, input_score + 8, greater<int>());
sort()는 오름차순 정렬 , 내림차순 정렬을 위해 greater()
최종 점수 = 정렬된 input_score을 0~4 인덱스까지 더하기
2. 맞힌 문제 번호 구하기 : 상위 5개의 점수에 해당하는 인덱스 + 1 = 문제 번호
find() 사용
for (int i = 0; i < 5; i++) {
int index_Q = find(score.begin(), score.end(), input_score[i]) - score.begin();
index[i] = index_Q + 1; //인덱스 값이라 1씩 더해줌
}
sort(index, index + 5); //앞 번호부터 출력해야하므로 sort 오름차순 정렬
find()함수 사용을 위해 input_score를 score벡터에 그대로 복사
#include <vector>
int main() {
int input_score[8] = { 0, }; //배열 선언
vector<int> score; //벡터 선언
for (int i = 0; i < 8; i++) {
cin >> input_score[i];
score.push_back(input_score[i]);
}
}
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int input_score[8] = { 0, };
vector<int> score;
//점수 입력받기
for (int i = 0; i < 8; i++) {
cin >> input_score[i];
score.push_back(input_score[i]);
}
//내림차순 정렬
sort(input_score, input_score + 8, greater<int>());
int final_score = 0;
int index[5] = { 0, };
//최상위 점수 5개 더하기
for (int i = 0; i < 5; i++) {
final_score += input_score[i];
// 상위 5위에 해당하는 문제 번호 찾기, 인덱스 찾기
int index_Q = find(score.begin(), score.end(), input_score[i]) - score.begin();
index[i] = index_Q + 1;
}
cout << final_score << endl;
sort(index, index + 5);
for (int i = 0; i < 5; i++) {
cout << index[i] << " ";
}
return 0;
}