Problem Solving/BOJ

[백준 / BOJ] C++ 27522 카트라이더: 드리프트

nageune 2023. 2. 26. 20:57
728x90
반응형

27522번: 카트라이더: 드리프트

 

문제

https://www.acmicpc.net/problem/27522

 

27522번: 카트라이더: 드리프트

레드팀은 2, 4, 5, 6등을 달성하여 총 $20$점을, 블루팀은 1, 3, 7, 8등을 달성하여 총 $19$점을 기록하였다.

www.acmicpc.net

 

 

풀이

각 레이서의 기록과 속한 팀을 pair로 받아 배열에 저장한다. 기록은 분:초:밀리초 형태이므로 문자열 오름차순으로 정렬하면 기록이 짧은 순으로 정렬이 된다. 이제 배열을 순회하며 각 레이서의 팀에 등수에 맞는 점수를 더해준다. 점수를 비교해 승리 팀을 출력하면 된다.

 

 

코드

#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  vector<pair<string, char>> v;
  int arr[] = {10, 8, 6, 5, 4, 3, 2, 1};
  for (int i = 0; i < 8; i++) {
    string s;
    char t;
    cin >> s >> t;
    v.push_back({s, t});
  }
  sort(v.begin(), v.end());
  int R = 0, B = 0;
  int size = v.size();
  for (int i = 0; i < 8; i++)
    if (v[i].second == 'R')
      R += arr[i];
    else
      B += arr[i];
  cout << (R > B ? "Red\n" : "Blue\n");
  return 0;
}

 

728x90
반응형