AtCoder

ABC326

総評 A、Bのみ解けた 2UP3DOWN これは問題の通りに分岐させれば良いだけ x, y = map(int, input().split()) a = abs(x - y) if x < y: if a > 2: print('No') else: print('Yes') else: if a > 3: print('No') else: print('Yes') 326-like Numbers 全探索す…

ABC179 復習

A - Plural Form 末尾の文字に従って分岐をします。 s = input() if s[-1] == 's': print(s + 'es') else: print(s + 's') B - Go to Jail タプルなどで同時に投げたサイコロの目を保持しておきます。 3回連続の判定は変数なり、現在のindexから2つ先までも…

ABC176 復習

C問題までは簡単なんだけどなぁ・・。 A - Takoyaki 単純に、全体で作成したい個数を、一回あたりの個数で割った数に時間をかければ良いだけです。 余りが出る場合は1回分の時間を足すことを忘れずに。 n, x, t = map(int, input().split()) ans = n // x *…

ABC175 復習

1ヶ月ぶりくらいに挑戦しました。 結果はC問題までAC・・・。 A - Rainy Season 単純に文字数を数えるだけではWAになってしまうことに注意します。 連続してRが出る回数が答えとなるため、R以外が出現した場合はカウントを初期化するなどすればOKですね。 …

ABC173 復習

A - Payment 少し考える必要があるか・・? 答えは必ず1000より小さい数になり、かつ支払いに使用できるのが1000の倍数円なので、1000の剰余を使用すれば良さそう。 回答は以下。 n = int(input()) if n % 1000 == 0: print(0) else: print(1000 - (n % 1000…

ABC172 復習

C問題が解けず・・。 A - Calc こちらは問題文の通りに実装すればよいですね。 a = int(input()) print(a + a ** 2 + a ** 3) B - Minor Change 問題を言い換えると、文字列SとTについて、異なる文字はいくつあるかということですね。 制約上、SとTは同じ長…

ABC171 復習

ABC171の復習です。 結果だけ先に書くと、A、B、Dの3問正解でした。 A - αlphabet A問題はいつも通り、簡単なif文が書ければ解けますね。 また、小文字であるかどうか、はpythonではislowerを使用することで簡単に求めることができます。ほかの言語でもおそ…

ABC170 復習

今回もC問題までしか解けませんでした。 いつになったらD問題を安定して解けるようになるのやら・・。 というわけで、復習始めます。 A - Five Variables リスト中に含まれる0のインデックス値を出力する問題です。 出力の際には1_indexにすることに気をつけ…

ABC016 C - 友達の友達

今回はこちら。 atcoder.jp グラフ問題ですね。 個人的にはグラフ問題はだいぶ慣れてきた感があります。 問題概要としては、各頂点について、1つの頂点を経てたどりづける頂点がいくつあるかを求める問題です。 ただし、1つの頂点を経てたどり着ける頂点が自…

ABC169 復習

今回はC問題まで解けました。ただ、WAとTLEを合わせて4回出たのが悔しいです。 D問題については、素因数分解について学ぶことができたのでまぁ良しとしましょう。 A - Multiplication 1 掛け算の問題ですね。 単純に入力値をかけ合わせれば答えとなります。 …

ABC168 復習

D問題まで解けました! 幅優先探索の典型的なパターンだったので、勉強した甲斐がありました。 と、いうわけで復習です。 atcoder.jp A - ∴ (Therefore) ポイントは2つ、 文字列の末尾を取得する 取得した文字列によって挙動を変える(ifが書ける) いつもの…

ABC167 復習

はい、今回もCまで解けました。(Bで2WAが辛い) というわけで復習です。 atcoder.jp A - Registration A問題は、2つの文字列比較をする問題でした。 1つ目の文字列と、2つ目の文字列の末尾を除いた部分が一致しているかを判定します。 pythonだと以下のよう…

ABC166 復習

D問題の壁高すぎますねぇ・・。 (今回のも数学ゲーか?) C問題までは20分ほどで解けたのでよかったのですが。 atcoder.jp A - A?C if-elseが書ければなんとかなります。 与えられた文字列SがABCか、ARCかで出力する文字列を変化させればよいだけです。 if …

三井住友信託銀行プログラミングコンテスト2019 D - Lucky PIN

atcoder.jp 与えられた文字列S(0~9のみ)から、3桁のパスワードをいくつ作れるか?という問題です。 ここで、Sの桁数が最大30000桁になるため、Sの3重ループをしようとするとTLEになってしまいます。 発想を逆転させて、3桁のパスワードを全列挙させて、そ…

ABC165 復習

今回はBまでしか解けませんでした。 atcoder.jp A問題 We Love Golf A~Bのうち、Kで割り切れる数字があればOK、なければNGを出力します。 なので、AからBまでの数値を順にKで割る操作を繰り返せば答えが出せます。 K = int(input()) a, b = map(int, input()…

ABC164 復習

今回もC問題までしか解けませんでした。 というわけで、復習です。 問題は以下。 atcoder.jp A問題 Sheep and Wolves 問題概要は、2つの値を比較した結果を出力すること。 以下、私の回答です。 S, W = map(int, input().split()) if S <= W: print('unsafe'…

ABC163 復習

unratedになってしまったのは残念でしたね。 とはいえ、「解く」ことは大事なので、やってみました。 今回はCまですんなり解けました。 A問題 円周の長さを求める問題でした。 円周の長さを求める公式(直径×π)と、小数の扱いに気を付ければ解けますね。 py…

ABC162 復習

atcoder.jp A問題 文字列に7が含まれているかどうかです。 pythonなら、forとifが書ければ解けますね。 n = input() for i in n: if i == '7': print('Yes') break else: print('No') B問題 かの有名なFizzBuzzですね。問題では数値の和を出力するように少し…

ABC161 復習

atcoder.jp A問題 変数のスワップができれば解けますね。 こういう時、Pythonは便利ですよね。 x, y, z = map(int, input().split()) x, y = y, x x, z = z, x print(str(x) + ' ' + str(y) + ' ' + str(z)) B問題 問題文にあるものをそのまま記載すればいい…

ABC160 復習

A問題 文字列操作の初歩的な部分について問うてる問題ですね。 N文字目へのアクセスを知っていれば何とかなります。 #3文字目と4文字目の比較 s[2] == s[3] B問題 四則演算をプログラムできれば解けます。 ans = 0 ans += (x // 500) * 1000 ans += (x % 500…

ABC159 復習

復習です。 A問題 ハマりました。 2つ選んで偶数になるのは、偶数・偶数か、奇数・奇数の組み合わせしかないので、N、Mそれぞれについて組み合わせを調べればヨシ。 pythonでは、itertoolsを使用すると解きやすいです。 import itertools #例えば、10個のも…

DFS(深さ優先探索)

DFSについて学びました。 参考にしたのはこの記事です。 基本編 以下が、DFSを実現する基本的なソースコードです。 #頂点数 #競プロでは入力を受け付けるが、ここでは気にしない v = 5 #グラフは2次元配列であらわす(無向グラフ) graph = [[] for i in ran…

AtCoderに向けて勉強することのメモ

いろいろ勉強したいことがあるので、勉強する予定のものを記載。 随時更新していく所存。 累積和 しゃくとり法 DFS(深さ優先探索) BFS(幅優先探索) union find DP(動的計画法)

ABC138振り返り

昨日のABC138を振り返る。 A問題 これはif文がわかれば解ける問題なので、詳細は書かない。 if (n < 3200) { System.out.println("red"); } else { System.out.println(s); } B問題 逆数ってなんだったっけ・・?と一瞬なったものの、問題文にあった式に従っ…