この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 件のコメント:
コメントを投稿