작성일 :

문제 링크

27918번 - 탁구 경기

설명

라운드 승자 예측이 주어질 때, 점수를 누적하다가 2점 차이가 나면 종료하는 문제입니다.

종료 시점의 점수를 출력합니다.


접근법

예측된 승자를 한 줄씩 읽어 D면 달구, P면 포닉스 점수를 올립니다.

매 라운드 후 두 점수 차가 2 이상이면 종료합니다.


Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;

class Program {
  static void Main() {
    var n = int.Parse(Console.ReadLine()!);
    var d = 0;
    var p = 0;
    for (var i = 0; i < n; i++) {
      var c = Console.ReadLine()![0];
      if (c == 'D') d++;
      else p++;
      if (Math.Abs(d - p) >= 2) break;
    }
    Console.WriteLine($"{d}:{p}");
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int n; cin >> n;
  int d = 0, p = 0;
  for (int i = 0; i < n; i++) {
    char c; cin >> c;
    if (c == 'D') ++d;
    else ++p;
    if (abs(d - p) >= 2) break;
  }
  cout << d << ":" << p << "\n";

  return 0;
}