각 문제를 풀때 걸리는 시간 T와 각 문제당 20 * v가
페널티로 달린다.
입력값으론 각 문제의 걸리는 시간과 verdict가 주어진다.
처음엔 그냥 각 문제의 T와 20 * v 를
다 더했는데 예제의 답도 못 미치게 나오길래
뭔가하고 찾아봤다.
알고보니
When you solve a problem at minutes, is added to your penalty
이 문장에서 저 T가 해당 문제풀기 전까지 푼 모든 문제들의 시간의 누적합을 의미하는 것이였다.
그렇게 코드를 짜니 맞았다.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<pair<int,int>> times; //더하는 건지 몰랐다.
void input(){
int T = 0, V = 0;
for (int i = 0; i < 11; i++) {
cin >> T >> V;
times.push_back(make_pair(T, V));
}
sort(times.begin(), times.end()); //algorithm헤더의 sort에선 페어는 first부터 비교
}
void solution() {
int timeSum = 0,ans=0; //시간 누적합, 답
for (pair<int, int> i : times) { //벡터의 모든 pair에서
timeSum += i.first; //시간 누적해서합해주고
ans += timeSum + 20 * i.second; //시간 누적합과 오차 시간 더해준다
}
cout << ans;
}
int main() {
input();
solution();
}
영어가 쉽게 읽혔으나 저 문장 의도를 파악을 못해서 아쉬운 문제.
옹 영어 잘해 역시~ ㅎㅎ그런장점을 살랴서 외국계 게임회사에 취업 도전해도 좋을거야! 홧팅이야😉