백준 17509(And the winner is ourselves)

jh Seo·2022년 6월 22일
2

백준

목록 보기
10/180

개요

각 문제를 풀때 걸리는 시간 T와 각 문제당 20 * v가
페널티로 달린다.
입력값으론 각 문제의 걸리는 시간과 verdict가 주어진다.

접근 방식

처음엔 그냥 각 문제의 T와 20 * v 를
다 더했는데 예제의 답도 못 미치게 나오길래
뭔가하고 찾아봤다.

알고보니
When you solve a problem at TT minutes, T+20VT+20V 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();

}

문풀후생

영어가 쉽게 읽혔으나 저 문장 의도를 파악을 못해서 아쉬운 문제.

profile
코딩 창고!

1개의 댓글

comment-user-thumbnail
2022년 7월 5일

옹 영어 잘해 역시~ ㅎㅎ그런장점을 살랴서 외국계 게임회사에 취업 도전해도 좋을거야! 홧팅이야😉

답글 달기