TakahiroNakamori

TakahiroNakamori

ナカモリタカヒロ

 
 

STring

問題

A – STring
プログラミング初級者から上級者まで楽しめる、競技プログラミングコンテストサイト「AtCoder」。オンラインで毎週開催プログラミングコンテストを開催しています。競技…

記録

解法

  1. 文字列を先頭から見ていく。
  2. S の回数を数える。
  3. T の回数を数える。
    その時にそれまでに数えた S の回数が \(0\) のとき答えを \(1\) 増やす。
    それまでに数えた S の回数が \(0\) 超のときは S の回数を \(1\) 減らす。
  4. 答えの \(2\) 倍を出力する。

コード例

#include <bits/stdc++.h>
using namespace std;
#include <atcoder/all>
using namespace atcoder;
using ll = long long;
using P = pair<int, int>;
#define rep(i, n) for(int i = 0; i < (n); ++i)
// using mint = modint998244353;
// using mint = modint1000000007;
// const int mod = 1000000007;
// const ll INF = 1LL << 60;
// const int INF = 1001001001;

int main() {
  string X;
  cin >> X;

  int n = X.size();
  int cnt = 0;
  int ans = 0;
  rep(i, n) {
    if(X[i] == 'S') {
      cnt++;
    } else {
      if(cnt == 0) {
        ans++;
      } else {
        cnt--;
      }
    }
  }

  cout << ans * 2 << endl;
  return 0;
}