[PROGRAMMERS]ダーツゲーム
9535 ワード
💡 参考資料
ソース:[プログラマー、レベル1]ダーツゲーム(JAVA実現)ゲームは3回のチャンスがあるため、3回の点数を格納する配列を発表した. ゲーム1回のスコアを保存するため、String変数tempを発表します. dartResult文字列の長さを繰り返し、各文字を処理します. からdefaultは整数をtempに格納する. ボーナスは、作成したarr配列のボーナス平方に従って代入されます. の後、インデックスに1(以下、1回単位)を加え、tempに空の値を加えて初期化します.
🤔 オプションは次の値でも出なくてもいいのでボーナスのインデックスを付けて次に渡し、オプションが出たらインデックスを1つ増やして次に回してインデックス-1に乗じた値のようです.🤔 オプションがある場合、*はインデックスを次のものに変換しています.したがって、インデックス-1に2を乗算し、インデックスが1より大きい場合、つまり、以前に得られたスコアがある場合、インデックス-2に2を乗算します. オプション#が選択されている場合は、インデックス-1に-1を乗じてマイナスになります. 反復文が終了すると、新しい反復文に配列されたすべての値が加算されます.
ソース:[プログラマー、レベル1]ダーツゲーム(JAVA実現)
public int solution(String dartResult) {
int answer = 0;
int arr[] = new int[3];
String temp = "";
int idx = 0;
for(int i = 0; i < dartResult.length(); i++){
switch(dartResult.charAt(i)){
case '*':
arr[idx-1]*=2;
if(idx >1) arr[idx-2]*=2;
break;
case '#':
arr[idx-1]*=-1;
break;
case 'S':
arr[idx] = (int)Math.pow(Integer.parseInt(temp),1);
idx++;
temp ="";
break;
case 'D':
arr[idx] = (int)Math.pow(Integer.parseInt(temp),2);
idx++;
temp ="";
break;
case 'T':
arr[idx] = (int)Math.pow(Integer.parseInt(temp),3);
idx++;
temp ="";
break;
default:
temp+=String.valueOf(dartResult.charAt(i));
break;
}
}
for(int i =0;i<arr.length;i++){
answer+=arr[i];
}
return answer;
}
🤔 オプションは次の値でも出なくてもいいのでボーナスのインデックスを付けて次に渡し、オプションが出たらインデックスを1つ増やして次に回してインデックス-1に乗じた値のようです.🤔
Reference
この問題について([PROGRAMMERS]ダーツゲーム), 我々は、より多くの情報をここで見つけました https://velog.io/@3hee_11/PROGRAMMERS-다트-게임テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol