けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

易しい構文解析

AtCoder ABC 380 B - Hurdle Parsing (6Q, 灰色, 200 点)

初歩的な構文解析問題 問題へのリンク 問題概要 "|---|-|----|-|-----|" のような、文字 '-' を文字 '|' で separate された文字列 が与えられる。 各 '-' 区間の '-' の個数を順に出力せよ。 制約 考えたこと ここでは for 文で解いてみよう。次の変数を管…

AtCoder ABC 367 B - Cut .0 (6Q, 灰色, 150 点)

小数点以下の「0」を除外する問題 問題へのリンク 問題概要 小数点第三位まで記述された数 が与えられる。次のようにせよ。 小数点以下の部分について、末尾に 0 を付けない 末尾に過剰な小数点を付けない 制約 考えたこと 末尾の 0 を除外していけば良い。…

AtCoder ABC 344 A - Spoiler (7Q, 灰色, 100 点)

いろんな方法がある! ここでは、文字 '|' のある 2 つの添字を特定するという方法で挑むことにする。 問題へのリンク 問題概要 英小文字と | のみからなる文字列 が与えられる。 は | をちょうど 2 個含むことが保証される。 2 つの | の間にある文字および…

AtCoder ABC 339 A - TLD (7Q, 灰色, 100 点)

for 文のいい練習問題! 問題へのリンク 問題概要 英小文字と文字 . のみからなる文字列 が与えられる。 を文字 . で分割したときの末尾の文字列を出力してください。 制約 には文字 . が 1 つ以上含まれる 考えたこと まずは、 に含まれる文字 . のうち、最…

AtCoder ABC 232 A - QQ solver (8Q, 灰色, 100 点)

構文解析の基本問題 問題へのリンク 問題概要 "6x4" のような、3 文字の文字列 が与えられる。この計算結果を求めよ。 解法 1 個目の整数値は文字 S[0] を読み取ればよい。これを整数値にするためには、C++ では次のように書ける。 int a = S[0] - '0'; 2 個…

AtCoder ABC 350 A - Past ABCs (7Q, 灰色, 100 点)

構文解析の初歩ですね。C++ なら、scanf() 関数を使うと楽ですね。 問題へのリンク 問題概要 "ABC197" のような長さ 6 の文字列 が与えられる。 何回目の ABC であるかを判定し、それが 316 回を除く、1〜349 回のいずれかであるかどうかを判定せよ。 解法 C…

AtCoder ABC 226 A - Round decimals (7Q, 灰色, 100 点)

色んな方法がありそう! 問題へのリンク 問題概要 0 以上 100 未満の小数第三位までで表すことのできる実数 が、小数第三位まで入力されます。 を小数第一位で四捨五入した結果として得られる整数を出力してください。 考えたこと C++ で解く場合、入力は ci…

AtCoder ABC 216 A - Signed Difficulty (7Q, 灰色, 100 点)

これは C++ よりも C で書いた方が楽かもしれない! 問題へのリンク 問題概要 "15.3" のような形式で、小数点第一位まで示された小数が与えられる。 小数第一位の値が 0 以上 2 以下ならば、整数部分に "-" をつけて(たとえば "15-") 小数第一位の値が 3 以…

AtCoder ABC 119 A - Still TBD (7Q, 灰色, 100 点)

これは戸惑った人も多いと思う。実は単純に考えて OK! 問題へのリンク 問題概要 日付データが yyyy/mm/dd 形式の文字列で与えられる (ex:"2019/04/30")。 与えられた日付が、2019 年 4 月 30 日以前であるかどうかを判定せよ。 解法 文字列を string 型で…