1. 競プロする人
  2. AtCoder Beginner Contest 141
2023-11-23 15:13

AtCoder Beginner Contest 141

AtCoder Beginner Contest 141

https://atcoder.jp/contests/abc141


↓の提出コードを見ながらの聴取を推奨いたします
A:https://atcoder.jp/contests/abc141/submissions/46273250

B:https://atcoder.jp/contests/abc141/submissions/46273327

C:https://atcoder.jp/contests/abc141/submissions/46273538


Atcoderホームページ:https://atcoder.jp/home

サマリー

「AtCoder Beginner Contest 141回目では、A問題では天気予測を行い、B問題ではタップダンスの文字列解析を行いました。さらにC問題では早押しクイズのポイント管理プログラムを作成しました。」

00:03
AtCoder Beginner Contest 141回目
A問題: Weather Prediction
A問題。Weather Prediction
問題文。高橋くんの住む街の天気は、1日ごとに、晴れ、サニー、曇り、クラウディ、雨、レイニー、
晴れ、曇り、雨、晴れ、曇り、雨と周期的に変化します。
今日の天気を表す文字列Sが与えられるので、明日の天気を予測してください。
Sはサニー、クラウディ、レイニーのいずれかであるということで、
サニーがあったらクラウディ、クラウディがあったらレイニー、レイニーが入ったらサニーを返してくださいですね。
Sイコール。リストを作りましょう。リストを作って、サニーにクラウディ、レイニー、スペルがあっている、レイニー、クラウディ、OKですね。
プリントL.indexSのパーセント3でいかがでしょうか。
これで1個次が出るはず。
CしたのでB問題に行きます。
B問題タップダンス。問題文。
高橋くんはタップダンスをすることにしました。
タップダンスの動きは文字列Sで表され、Sの各文字はL、R、U、Dのいずれかです。
各文字は足を置く位置を表しており、1文字目から順番に踏んでいきます。
Sが以下の2条件を満たすとき、またそのときに限りSを踏みやすい文字列と言います。
奇数文字目が全てR、U、Dのいずれか。
偶数文字目が全てL、U、Dのいずれか。
Sが踏みやすい文字列ならYesを、そうでなければNoを出力してください。
L、R、U、Dなので、奇数文字目にL、偶数文字目にRがあったらNoを出せばいいですね。
なので、Sイコール、インプット、で、フォーアイ、レンジ、レン、S。
if i プラス1 が 1 スタートにしますか。
偶数 i プラス 1 割る 2 の余りが 0、偶数だったら、偶数文字目が全てL、U、Dだから、
If SのI番目がイコールイコール 偶数文字目がLUDだからRが入って
たら駄目 RだったらExitプリント Noは頭が大きいNo
偶数じゃなかったら偶数じゃない 場合Else If SのI番目がLだったら
プリントNoです どっちも引っかから なくて 法文が全部終わったらプリント
YesしてもらったらOKじゃないですか 提出 ACしました C問題いきます
C問題: 早押しクイズのポイント管理
C問題 アタックサバイバル問題文 高橋くんは早押しクイズの大会
を開くことにしました スコアボード の作成を任された木座橋くんは
次のルールを持つラウンドのポイント を管理するプログラムを書くの
に苦戦しています このラウンド の参加者はN人であり1からNまで
の番号が付いています ラウンド 開始時点では全員がKポイント
を持っています 誰かが問題に正解 するとその人以外のN-1人のポイント
が1ポイント減ります これ以外 によるポイントの変動はありません
ラウンド終了時にポイントがゼロ 以下の参加者は敗退し 残りの
参加者が勝ち抜けます このラウンド では9回の正解が出て I番目に正解
したのは参加者AIでした 木座橋 くんの代わりにN人の参加者の
それぞれが勝ち抜けたか 敗退 したかを求めるプログラムを作成
してください NKQが与えられます N2ラウンド開始時は全員がKポイント
持っている 9回の正解が出る I番 目に正解した 正解者が出るんだね
これ以外はマイナスされていく これはプラスさせていくしかないか
マイナスじゃなくてプラスで判定 しましょうか 辞書を作って 消し
ちゃった C問題 NKQをとりあえず 取ります NKQイコールマップのイントロ
インプットドットスプリット Aイコールリストの インプットに
しておこうか インプットのインプット にしておこうか N人って言って
たっけ 一応確認プリントA エラー インプットがダメです あれ この
書き方ダメでしたっけ 9だ 9回インプット ダメ いけた 3132でしょ
N人いるのでリストというか あれを 辞書を作って for i in range N人
の if not Nじゃないな iだな iプラス 1にしておこう not in dig だったら
dig iプラス1イコールk ちょっと プリントdigしてみましょうか 全員
3点持ってる 3132 何人いるって 言ってたっけ N人でしょ 合ってる
ね N人いて 最初の点数持ってて 9個問題が出る なので プラスして
いきましょうか っていうか じゃあ Aのリスト 別にいらないな 多分
コメントアウトしておきましょう 一応 for i in range 9 問題が9個入ります
よ Aイコールイントのインプット 誰が正解したかが与えられます
リク aプラスイコール1 どうしよう かな for i in range 1,Nプラス1にして
おいて 1番からっていうあれにした のでね リク iマイナスイコール
ボーダーラインが分かんないのか それ以外にはマイナス1されます
マイナス3してもダメか これ 引かなきゃダメか かといって 1個1個参照して
引いているとおそらくオーバー するので どうしたもんかな 各3
箇所のポイントは 001-1-1-1 そうか 正解数 正解しなかった数っていう
のはだいたい問題数と一緒だから マイナス9したらいいのか マイナス
イコール9 で if リク iが0より 大きかったらプリントイエス イエス
入力例2は全部イエス 全部イエス 入力例3は4つ目 違う 5つ目と最後
から2番目だけがイエス 5つ目と 最後から2番目だけがイエス出て
はいますが これが制限オーバー しないかどうかが問題ですね とりあえず
入力例は全部クリアしてるので 出して これが通らなかったらちょっと
解説を見て 裏で勉強します 提出 11 あーちょっと16 20 あ ACした やった
AC C問題初めてACしましたね この 番組で ではちょっと時間があまり
ないので D問題を裏で見ておきます おそらく解けはしないので この
調子でC問題 D問題もスラッと解ける ようになれればなと思っています
ではまた次回 お疲れさまです
15:13

コメント

スクロール