본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 2822 점수 계산

by 까망 하르방 2021. 2. 25.
반응형

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

 Input 

20

30

50

48

33

66

0

64

 

 Output 

261

3 4 5 6 8

▶ vector와 sort() 이용 

① 점수를 기준으로 내림차순 정렬하여 고득점 5개를 구합니다.

② 고득점 5문제를 문제번호 기준으로 내림차순 정렬.

※ vector 원소를 pair로 구현하거나 구조체로 구현 가능.


#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
 
// {점수, 문제 번호}
vector<pair<int, int>> problemList(8);
int main() {
    
    for (int i = 0; i < 8; i++){
        cin >> problemList[i].first;
        problemList[i].second = i + 1;
    }
 
    // 점수를 기준으로 내림차순 정렬
    sort(problemList.begin(), problemList.end(), greater<pair<int, int>>());
 
    int sum = 0;
    vector<int> problemID;
    // 고득점 상위 5개
    for (int i = 0; i < 5; i++){
        sum += problemList[i].first;
        problemID.push_back(problemList[i].second);
    }
 
    // 문제 번호 오름차순 정렬
    sort(problemID.begin(), problemID.end());
 
    cout << sum << "\n";
    for (int i = 0; i < problemID.size(); i++)
        cout << problemID[i] << " ";
}

 

반응형

'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 6987 월드컵  (1) 2021.02.25
[BOJ] 백준 2935 소음  (0) 2021.02.25
[BOJ] 백준 14225 부분수열의 합  (0) 2021.02.25
[BOJ] 백준 10815 숫자 카드  (0) 2021.02.25
[BOJ] 백준 1158 요세푸스 문제  (0) 2021.02.25

댓글