やるだけPython競プロ日誌

競プロの解説をPythonでやっていきます。できるだけ初心者に分かりやすいように『やるだけ』とかは言わないようにします。コメントについては必ず読んでいます。どんなに細かいことでもいいのでコメントくださればうれしいです。

2018-01-01から1年間の記事一覧

国会でも話に上がった "HASH" をPythonで -- hash()じゃないよ! --

以前、”国会にhash関数の話が出たwww”といって、そっちの界隈の人でちょっとした話題になっていました。では、hashとはなんなのか?分からない人もいると思います。それがわかっても、Pythonでの実装がわからない方もいらっしゃると思いますので、この記事を…

AtCoder に登録したら解くべき精選過去問 10 問 をPythonで解いてみた

0問目 PracticeA - はじめてのあっとこーだー(Welcome to AtCoder) 1問目 ABC086A - Product 2問目 ABC081A - Placing Marbles 3問目 ABC081B - Shift only 4問目 ABC087B - Coins 5問目 ABC083B - Some Sums 6問目 ABC088B - Card Game for Two 7問目 ABC…

Pythonでenumerateを賢く使う。

enumerateって? 英語で『数え上げる』という意味です。この関数の引数にイテレータを与えると、何回そのイテレータを呼び出したかを数える数と、そのイテレータ自身を返します。 例えば for i, j in enumerate(range(5, 0, -1)): print(i, j) """ 0 5 1 4 2…

Pythonの無名関数=(lambda)について

lambda 分かりにくいですよね笑私も理解するために少し時間がかかりました。簡単に言うと”” def せずに関数を定義する ””ものです。もし、あるイテレータ・構造の二番目を取り出す関数を作るには def getsecond(n): return n[1] とできますが、もっと短く ge…

ただの回数繰り返しだけじゃない! range()の賢い使用法

rangeって? 英語で範囲 を現します。Pythonでは、第一引数から第二引数まで、第三引数区切りで値を作ります。 え?引数を3つも取れるの? そう思った方のための記事となりますので、すでに知っていた方はブラウザバックしていただいても大丈夫です…。 引数…

数え上げに使えるcollections の Counter のお話

"collections" ライブラリの "Counter"。文字通り、数えるためにあります。『数え上げ?普通にfor文回せばいいじゃんアゼルバイジャン』という方もいらっしゃるでしょう。お前それ競プロの前でも言えんの? for + リストでの数え上げ defaultdict をつかう数…

Python における list の本質と 二次元配列 ( 多次元配列 ) のお話。

こんなページを見てくださっているような方々は分かり切っていることかもしれませんが、わたくしなりに考えてみたことです。ネットで、私の疑問に直接回答しているサイトは見当たりませんでしたので、ここに記します。茶番開始です() 配列の宣言 Pythonでリ…