문제출처: https://www.acmicpc.net/problem/17224


풀이

문제가 길다보니 괜히 어렵게 접근하여 낚인 문제입니다.

pair벡터와 2번째 원소를기준으로 정렬하는 sort함수로 풀었는데 자꾸 100점이 뜨길래 계속 고민했지만 복잡하게 생각할 필요가 없는 문제였습니다.

벡터와 알고리즘 헤더를 이용하지않고도 1차원 배열하나만 있으면 간단하게 풀리는 문제입니다. 너무 어렵게 생각했나봅니다..

저처럼 pair벡터와 2번째 원소를 기준으로 정렬시켜서 계산한 분들이 계시다면 분명 문제에서 알려준대로 예시2,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
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int arr[101];
int main()
{
    int n, l, k, sub1, sub2, sum = 0;
    cin >> n >> l >> k;
    for (int i = 0; i < n; i++)
    {
        cin >> sub1 >> sub2;
        if (sub2 <= l)
            arr[i] = 140;
        else if (sub1 <= l)
            arr[i] = 100;
    }
    sort(arr, arr + n, greater<int>());
    for (int i = 0; i < k; i++)
    {
        sum += arr[i];
    }
    cout << sum << endl;
    
}
cs


결과








+ Recent posts