2012年12月24日月曜日

TopCoder SRM448 Div2 250Pts

このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題文についておおまかに説明する。

ブラックジャックのカード集合が与えられたときに、そのカード集合の点数の返せ。なお、1枚のカードは文字列配列cards[]の1要素であり、その文字は強さを表す1文字(2~9とTen、Jack、Queen、King、Aceの頭文字のいずれか)と、スート(Clubs、Diamonds、Hearts、Spadesの頭文字)の1文字を結合したものからなる。エースは11として数える。

私の解答はこちら。

public class TheBlackJackDivTwo {

 public int score(String[] cards) {
  int score = 0;
  for( int i=0 ; i<cards.length ; i++ ){
   char c = cards[i].charAt(0);
   if( c >= '2' && c <= '9'){
    score += c - '0';
   }else if( c == 'T' || c == 'J' || c == 'Q' || c == 'K' ){
    score += 10;
   }else{
    score += 11;
   }
  }
  return score;
 }

}

1回のsubmitでシステムテストクリア。単純な場合分けでお終い。この問題だけだと、何のために文字列が2文字になっているか分からないですね。Div1だと意味のある問題が出るのでしょうか。

0 件のコメント:

コメントを投稿

フォロワー

ページビューの合計