[プログラマー]ダーツゲーム


こんにちは


やってみろMINDOLだ

「これは国ですか」
来週はもっと暑いと聞いて、もう怒っています.
夕立も書いてありますが太陽はまだ毒です
(ここまで暑くなったら雨でしょう)
最近家でギターサークルをオンラインで指導しています
会って指導したいのですが、状況が手伝ってくれません.
7月だけど会えなかったメンバーが多かったのが本当に悲しかった.
でも距離があるから仕方ない
雑談はここまでで,今日は問題を見る.
質問リンク

ダーツゲーム



(お客様のIDが到着しました)

コードでダーツゲームの採点ロジックを実現すればいい!
ダーツゲームは全部で3回、
結果は「スコア+加算+オプション」として与えられます.

整理する

  • 点のリストを表示します.
  • 文字列でナビゲートし、数値に基づいてインデックスを追加し、スコアリストに値を入れます.
  • のボーナスに遭遇した場合は、スコアを平方または立方にします.(Sボーナス不要)
  • オプション
  • "*"の場合、以前のスコアが存在する場合、現在のスコアと以前のスコアは2倍になります.
    「#」オプションが表示された場合は、スコアを負に設定します.
  • sum関数を使用して、スコアリスト値を加算して返します.
  • 文字列を検索できるなら、難しくありません.
    文字と条件を順番に比較し、リストに値を入力または置換すればよい.
    ではPythonコードを直接見てみましょう
    def solution(dartResult):
    	score = [0] * 3		# 점수를 담을 리스트
    	i = -1
    	for idx in range(len(dartResult)):
    		if dartResult[idx].isdigit():		# 만약 숫자면
    			if idx > 0 and dartResult[idx - 1] == '1':	# 숫자가 10이면
    				score[i] *= 10
    			else :		# 숫자가 10이 아니면
    				i += 1
    				score[i] = int(dartResult[idx])
    		elif dartResult[idx] == 'D':	# 보너스 'D'
    			score[i] = score[i]**2
    		elif dartResult[idx] == 'T':	# 보너스 'T'
    			score[i] = score[i]**3
    		elif dartResult[idx] == '*':	# 옵션 '*'
    			score[i] *= 2
    			if i > 0:		# 이전 점수가 있으면
    				score[i - 1] *= 2
    		elif dartResult[idx] == '#':	# 옵션 '#'
    			score[i] *= -1
    	return sum(score)
    オプション「*」を選択すると、以前のスコアが変更されます.
    以前のスコアをリストに保存する必要があることに気づいたらすぐに解ける質問です~~
    どうですか.簡単ですね.
    いいえ...
    最近、私は毎日プログラマーたちに問題を宣伝するように努力しています.
    多く解くのもいいですが、自分でコードを書く能力を養うことも大切だと思います.
    コードを再表示して位置決めすると、改善が見つかり、再包装されます.
    最終的には実力向上に役立ちます~
    でも思ったより時間があったので1日1つだけ
    いくつか解けると一つしか上がらない選択基準は同日解決された最初の問題だ.
    最近一人で勉强するのは少しむなしいです...42のクラスタが恋しいです.
    早くコロナを静かにして、クラスタを再開してほしい...!
    それでは今日のポスターはここまでにしましょう今、今

    こんにちは!