TopCoder SRM 148 DIV 1 Easy 練習

問題

トランプの山から隣あった数の和が13になるものとKのカードを取り除いていく。最後に何枚のカードが残るか。

山の一番最後と一番最初でもペアが作れることに注意する。

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;

public class CircleGame {
    private int toInt(char c)
    {
        string T = " A23456789TJQK";
        return T.IndexOf(c);
    }

    public int cardsLeft(string deck) {
        while (true)
        {
            bool remove = false;
            for (int i = 0; i < deck.Length; ++i)
            {
                if (deck[i] == 'K')
                {
                    deck = deck.Remove(i, 1);
                    remove = true;
                    break;
                }
                else if (toInt(deck[i]) + toInt(deck[(i + 1) % deck.Length]) == 13)
                {
                    int di = Math.Max(i, (i+1)%deck.Length), dj = Math.Min(i, (i+1)%deck.Length);
                    deck = deck.Remove(di, 1);
                    deck = deck.Remove(dj, 1);
                    remove = true;
                    break;
                }
            }
            if (!remove)
                break;
        }
        return deck.Length;
    }
}