Kai

地方国立大学大学院生 PythonでAtCoder Beginner Contest に毎週参加しています。 Rating最高値:589 試行錯誤中。 コメント等で質問下されば答えることができる範囲で回答させていただきます。

Kai

地方国立大学大学院生 PythonでAtCoder Beginner Contest に毎週参加しています。 Rating最高値:589 試行錯誤中。 コメント等で質問下されば答えることができる範囲で回答させていただきます。

    最近の記事

    [ABC287 Python]ユニークビジョンプログラミングコンテスト2023 新春 (AtCoder Beginner Contest 287) A~D問題Python解説

    A問題N = int(input())S = [input() for _ in range(N)]if S.count("For") > S.count("Against"): print("Yes")else: print("No") N人の賛成反対それぞれの人の数を数えればいいので、 リスト.count(要素) を使います。 賛成の人 = S.count("For") 反対の人 = S.count("Against") を比較して賛成の人の方が多いときにY

      • [ABC286 Python]ウルシステムズプログラミングコンテスト2023(AtCoder Beginner Contest 286) A~D問題Python解説

        A問題N, P, Q, R, S = map(int, input().split())A = list(map(int, input().split()))A[R-1:S], A[P-1:Q] = A[P-1:Q], A[R-1:S]print(*A) 少し問題文が分かりづらいですが、 要は、 「数列AのP番目からQ番目の項」と「数列AのR番目からS番目の項」を入れ替えて数列Aを出力しなさい。 ということになります。 Pythonで入れ替えは次を参考にしてください。

        • [ABC285 Python]AtCoder Beginner Contest 285 A~D問題Python解説

          A問題a, b = map(int, input().split())lis = [(1,2),(2,4),(4,8),(4,9),(2,5),(5,10),(5,11),(1,3),(3,6),(6,12),(6,13),(3,7),(7,14),(7,15)]if (a, b) in lis: print("Yes")else: print("No") 繋がっている辺は14本しかありませんので、 全部列挙したほうがいいと思います。 繋がっている点を(小さい

          • [ABC284 Python]AtCoder Beginner Contest 284 A~D問題Python解説

            ABC284のPythonを用いた解説記事です。 ミス等ありましたら、コメントにてご連絡ください。 A問題N = int(input())S = [input() for _ in range(N)]for i in range(1, N+1): print(S[-i]) 入力された文字列SiをリストSに入れ、後ろから取り出していきます。 インデックスで考えると一番後ろはインデックス=-1、先頭はインデックス=-Nとなりますので、インデックスを指定して逆順に取り出す

            [ABC283 Python]ユニークビジョンプログラミングコンテスト2022 冬(AtCoder Beginner Contest 283)A~C問題Python解説

            おまけでD問題もあります。ぜひご覧ください。 A問題A, B = map(int, input().split())print(A**B) 問題分にある通り、A^Bを出力します。 Pythonでは、A^BをA**Bとして出力することで、答えを得ることができます。 B問題N = int(input())A = list(map(int, input().split()))Q = int(input())for i in range(Q): query = list(

            [ABC282 Python]HHKBプログラミングコンテスト2022 Winter(AtCoder Beginner Contest 282) A~C問題Python解説

            ABC282の解説記事です。 ミス等ありましたら、コメントにてご連絡ください。 A問題K = int(input())print("ABCDEFGHIJKLMNOPQRSTUVWXYZ"[:K]) K個つなげると考えるよりも、既につながっている物からK個取り出す、という考え方の方がよさそうです。 K<=26の制約があるので、A~Zまでの範囲内なのが確約されています。 A,B,C…の順にK個つなげていくイメージで、先頭のK個を取り出しましょう。 B問題import ite

            [ABC281 Python]AtCoder Beginner Contest 281 A~C問題Python解説

            いつもご覧いただきありがとうございます。 ABC281の解説記事です。 ミス等ありましたら、コメントにてご連絡ください。 A問題N = int(input())for i in range(N+1): print(N-i) 0~Nまでの整数を大きい順に出力する問題です。 いろいろ考え方はありますが、 自分はNから0~Nまでの整数を引くことで導きました。 B問題S = input()if len(S) != 8: print("No")elif S[0].is

            [ABC280 Python]デンソークリエイトプログラミングコンテスト2022 Winter(AtCoder Beginner Contest 280)A~C問題Python解説

            A問題H, w = map(int, input().split())ans = 0for i in range(H): s = list(input()) ans += s.count("#")print(ans) 問題文のとおりH×Wのマス目から、 "#"のマスを探しましょう。 上から順に入力されたマスを見ていき、 "#"の個数を数えていきます。 その個数を解答ansに加えていくことで 最終的に"#"の総個数を算出できます。 B問題N = int(inp

            [ABC279 Python]トヨタシステムズプログラミングコンテスト2022(AtCoder Beginner Contest 279)A~C問題Python解説

            いつもご覧いただきありがとうございます。 ABC279の解説記事です。 ミス等ありましたらコメントで教えていただけると幸いです。 おまけでD問題もあります。 A問題S = input()v = S.count("v")w = S.count("w")print(v+2*w) 下に尖っている部分ですが、"v"には1か所、"w"には2か所ありますね。 "v"と"w"それぞれの個数を数えて、計算すれば答えが求められそうです。 文字列の中にある文字が何個存在するかを確認するには

            [ABC278 Python]AtCoder Beginner Contest 278A~C問題Python解説

            ABC278の解説記事です。 ご質問等ございましたらコメントにてお知らせください。 最後におまけとしてD問題もありますので、是非ご覧ください。 A問題N, K = map(int, input().split())A = list(map(int, input().split()))K = min(N, K)print(*A[K:]+[0]*K) Nの制約が少ないので、ループで問題文通り解いても大丈夫ですが、少し工夫するだけで簡単に解くことができます。 まず、Aの先頭の

            [ABC277 Python]大和証券プログラミングコンテスト2022 Autumn (AtCoder Beginner Contest 277) A~C問題Python解説

            ABC277のPython解説記事です。 ミス等ありましたらコメントにてご連絡いただけますと幸いです。 A問題N, X = map(int, input().split())P = list(map(int, input().split()))for i in range(N): if P[i] == X: print(i+1) 1~Nの整数を並び替えたリストPの中で、 整数Xが何番目にあるか答えてね、 という問題でした。 リストPを先頭から見ていき

            [ABC276 Python]AtCoder Beginner Contest 276 A~C問題Python解説

            こんばんは。 ABC276の解説記事です。 もしミス等ありましたらコメントお願いいたします。 A問題S = input()ans = -1for i in range(len(S)): if S[i] == "a": ans = i-1print(ans) いろいろな解き方が考えられますが、 上記が一番スマートかなと思います。 文字列Sの先頭から順番に見ていき、 もし"a"が現れたらSのindexをansとして更新していきます。 よって最後に出力され

            [ABC275 Python]AtCoder Beginner Contest 275 A~C問題Python解説

            ABC275の解説記事です。 ミス等ありましたらコメントにてご連絡ください。 A問題N = int(input())H = list(map(int, input().split()))h = 0ans = 0for i in range(N): if H[i] > h: ans = i h = H[i]print(ans+1) よく出題される変数を2個保持する問題です。 まずは橋の高さを表すh そして何番目の橋が高いのかを表すansで

            [ABC274 Python]キーエンスプログラミングコンテスト2022(AtCoder Beginner Contest 274) A~C問題Python解説

            ABC274の解説記事です。 ミス等ありましたらコメントにてお願いいたします。 A問題from decimal import Decimal, ROUND_HALF_UPA, B = map(int, input().split())ans = Decimal(str(B/A)).quantize(Decimal('0.001'), rounding=ROUND_HALF_UP)print(ans) Pythonで四捨五入するときによくroundを使う方がいますが、 ro

            [ABC273 Python]パナソニックグループプログラミングコンテスト2022(AtCoder Beginner Contest 273) A~C問題Python解説

            ABC273のA~C問題をPythonで解説します。 ミスやご質問等ありましたら、コメントにてご連絡ください。 A問題N = int(input())f = [0 for i in range(11)]f[0] = 1for i in range(1, 11): f[i] = i*f[i-1]print(f[N]) 0<=N<=10なので、全部試しても大丈夫です。 問題文通りに解いていくと、 f(0) = 1 f(1) = 1 × f(0) = 1 f(2) = 2

            [ABC272 Python]AtCoder Beginner Contest 272 A~C問題Python解説

            ABC272の解説記事です。 質問・ミス等はコメントにてお願いいたします。 A問題N = int(input())A = list(map(int, input().split()))print(sum(A)) いろいろ解き方が考えられますので、 解けた方も考えてみましょう。 N個の整数を全てリストAに入れます。 リストAの合計値を出力するためには sum(A)で回答できます。 B問題import itertoolsN, M = map(int, input().sp