はむ吉(のんびり)の練習ノート

主にプログラミングについて、思いついたことや、試してみたこと、学んだことを、覚え書きを兼ねてまとめます。

カレントディレクトリにある複数の PDF 文書をファイル名順に Python の PyPDF2 で結合する:コンテキストマネージャ自作の学習を兼ねて

複数の PDF ファイルがあり,これを一定の規則で結合したい場合があります.規則が単純ならば既存のソフトウェアで対応できますが,そうでなければ自分でスクリプトを書いたほうが円滑です.典型例として,カレントディレクトリの PDF ファイルをモジュール …

Windows Subsystem for Linux で動く Debian GNU/Linux 環境に C/C++ の開発環境 (Visual Studio Code + Clang) を構築する

Windows 10 上の Windows Subsystem for Linux (WSL) により機能している Debian GNU/Linux 環境に,C/C++ の開発を行うための設定を施す手順を書き留めておきます.エディタとしては Visual Studio Code (VS Code)を,コンパイラとしては Clang をそれぞれ…

Windows Subsystem for Linux で構築した Debian GNU/Linux 環境を日本語化する:ロケール・タイムゾーンの設定から日本語入力まで

Windows 10 に搭載されている Windows Subsystem for Linux を使うと,Linux を手軽に使用できます.本記事では,これにより構築された Debian GNU/Linux 環境を日本語化する方法についてまとめます.

Windows Subsystem for Linux 上に Python 3 開発環境を構築する:Debian GNU/Linux 環境の初期設定から Anaconda + Visual Studio Code の導入まで

Windows 10 に備わっている Windows Subsystem for Linux (WSL) を使うと,手軽に Linux 環境を実現できます.本記事では,WSL に基づき Linux 環境を構築し,これに Python 3 ディストリビューション Anaconda およびエディタ Visual Studio Code を導入し…

はむ吉(のんびり)が利用しているミニ/マイクロブログサービス (Twitter, Mastodonほか)

私はミニブログサービスとして主に Twitter を利用してきましたが,このたび Mastodon をはじめとするほかのサービスも使ってみることにしました.私が各サービスで使用しているアカウントを列挙します.いずれもアカウント名は hamukichi_nbr です. Twitte…

オレオレ造語 “掌” 辞典:自分にしか通用しない造語一覧

私は思考の中で,既存の語句を組み合わせた,いくつかの妙な造語を使っていることに気づきました.このような「オレオレ造語」に頼っていると,うっかり会話にもそれらを使いかねません.そこで,これらの造語を,一般に通用する語句で定義し,あえてそれを…

yukicoder No.3032 Unavailability of Inequality Signs コメンタリーもどき(解説除く):April fool contest 2018

競技プログラミング練習サイトyukicoderにおいて,昨年までと同様に,風変わりなコンテストyukicoder April fool contest 2018が4月1日22時より開かれました.その中の一問として,私が作成した問題であるNo.3032 Unavailability of Inequality Signsを出題…

AtCoder に登録したら解くべき精選過去問 10 問 (AtCoder Beginners Selection) を F# で解く:別解

AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ - Qiita (drken さん)で紹介されている 10 問を,二番煎じではありますが F# で解きました.Pythonista 兼駆け出し Haskeller の視点から,言語機能やライブラリの紹…

Windows Subsystem for Linux において Emacs を用いた C/C++ の開発環境を整える:auto-completeを用いた自動補完

この記事では,Windows 10 上で C/C++ の開発環境を整える方法についてまとめます.エディタとしては Emacs を使用します.コンパイラをはじめとする各種ツールを導入したうえで,Emacs へ Auto-Complete をはじめとする各種パッケージを導入し,C/C++ の自…

yukicoder No.638 Sum of "not power of 2":解法と実装

昨日 (1/26) に,yukicoder contest 181 - yukicoder が開催されました.私は参加できなかったのですが,このコンテストで出題されたうちの一問である No.638 Sum of "not power of 2" - yukicoder を演習として解きました.学習記録を兼ねて,この問題の解…

AtCoder Beginner Contest 085 解き直し:Haskell による

昨日 AtCoder にて定期コンテスト AtCoder Beginner Contest 085 が開かれましたが,私は解くのに時間がかかったうえ, C 問題までの 3 完という,自分としてはひどい結果に終わりました *1 .最近コンテスト後の復習が不十分だったので,今回は解き直しをし…

2017年を振り返って:(競技)プログラミングを中心に

いつもながら,月日が経つのは早いもので,つい最近お屠蘇気分に浸っていたと思ったら,もう 2017 年が終わろうとしています.そこで,昨年末と同様に,主にプログラミング,とりわけ競技プログラミングの面について,2017 年を振り返ります.

DISCO presents ディスカバリーチャンネルコードコンテスト 2017 (DDCC2017) 本選参加記

先日,標記コンテストの予選がオンラインで10/7に,本選がオンサイト(東京・大森)で11/3にそれぞれ行われました.思いがけないことに,私は予選に通過することができ,本選に進出することができました.オンサイトのプログラミングコンテストに参加するの…

CentOS 7環境でPython開発ツールを整備する:インタプリタの導入,仮想環境の作成とIDEの設定

昨日,USBメモリにCentOS 7をインストールし,無事に動作させることができましたが,開発環境の整備はまだでした.そこで,まずは私が本業でも趣味の競技プログラミングでもよく使っているPythonを使用できるように設定しました.具体的には,Python 3.5処理…

CentOS 7をUSBメモリからUSBメモリにインストールする

最近趣味でLinuxに触れることがめっきり減っていましたが,昨日急に思い立ち,CentOS 7をUSBメモリに導入して使ってみることにしました.CentOS 7を最終的にインストールするメディアだけではなく,インストーラを書き込むメディアもUSBメモリとすることで,…

片道廿余里

日記のような、まわりくどいよくわからない文章を書いてみました。プログラミングとはほとんど関係がありません。

近況報告 (12)

ふと気付いたのですが、今年はまだこのブログを一度も更新していませんでした。そこで、例によって最近の私について思いつくまま書き連ねようと思います。

2016年を振り返って:(競技)プログラミングを中心に

思い返せば、2016年にはいろいろなことがあった気がします。競技プログラミングだけではなくいろいろな面で、自分にとって新たな出会いや画期的な出来事がありました。そこで、ここ数年はやっていなかったのですが、久しぶりにこの1年を振り返ってみようと思…

yukicoder No.453 製薬会社:解き方と解答例

現在、yukicoderではAdvent Calendar Contest 2016が開催されています。この記事では、その第4日に出題された、No.453 製薬会社 - yukicoderという問題について、解き方とコードの例を示します。

5年後の自分へ:はてなブログ5周年ありがとうキャンペーンお題第2弾

今まで将来の自分へ向けたメッセージを書いたことはほとんどないし、書こうという気になったこともあまりありません。ところが、折しも現在開催中の「はてなブログ5周年ありがとうキャンペーン」(詳細)お題第2弾が「5年後の自分へ」なので、これを機に書い…

当ブログ開設から約10ヶ月を迎えて:はてなブログ5周年ありがとうキャンペーンお題第1弾

時間が経つのは早いもので、当ブログの開設から10ヶ月ほどが経ちました。最近更新が滞りがちなので、何か題材はないかと思っていたところ、「はてなブログ5周年ありがとうキャンペーン」(詳細)という企画について知りました。この記事では、そのお題第1弾…

APIを利用して、CodeforcesとTopCoder SRMでのレーティング変化を取得するPython 3スクリプト

ふと思い立ち、既出かもしれませんが、プログラミングコンテスト(のサイト)であるCodeforcesとTopCoder SRMにおけるレーティングとその変化を簡単に取得するためのPython 3スクリプトを書きました。メモを兼ねて、とりあえず載せておきます。

yukicoder No.416 旅行会社:解き方とC++によるその実装

この記事では、先日行われたyukicoderのコンテストで出題された、No.416 旅行会社 - yukicoderという問題の解き方とその実装を、学習の記録も兼ねて示します。コンテスト中にはこの問題を解けなかったのですが、ほかの方が書かれた解説等を踏まえて、ようや…

AtCoder Beginner Contest 043 / Regular Contest 059 D. アンバランス:解法と実装

8月13日に行われた、AtCoder Regular Contest 059に参加しました。この記事では、このコンテストおよびAtCoder Beginner Contest 043で共通して出題された、D: アンバランス / Unbalanced - AtCoder Regular Contest 059 | AtCoderの解き方とそのPython 3に…

yukicoder No.55 正方形を描くだけの簡単なお仕事です。:解き方とRubyによる実装

少しずつ、yukicoderにある★★~★★★レベルの問題を解き進めています。この記事では、先ほど解いたNo.55 正方形を描くだけの簡単なお仕事です。 - yukicoderという問題について、解き方とRubyによるコードを示します。最近ブログに「解説」をあまり書いていな…

yukicoder No.406, 407コメンタリー(?)

8月5日から翌6日にかけて開催されたyukicoderのコンテストに、私が作成した二つの問題、「鴨等間隔の法則」(No.406)および「鴨等素数間隔列の数え上げ」(No.407)を出題していただきました。この記事では、作問の経緯や、考えたことなどを書きます。なお、両…

Bash on Windows上でプログラミング言語Crystalの処理系を使う

先日のWindows 10 Anniversary Updateにより、Insider Previewを利用しなくてもBash on Windowsを利用できるようになりました。そこで、以前から少し気になっていたプログラミング言語Crystalを、この画期的なシステムを利用して使ってみることにしました。

近況報告 (11)

気がつけば、前回の更新から2か月ほどが経ってしまっていました。そこで、旧ブログで行っていたように、最近のできごとを簡単に振り返ってみます。

AtCoder Regular Contest 054 B. ムーアの法則:複数の解法

5月21日21時より、AtCoderにて定期コンテストであるAtCoder Regular Contest 054 (ARC 054) が開かれました。本記事では、このコンテストで出された問題の一つであるB: ムーアの法則 - AtCoder Regular Contest 054 | AtCoderについて、その解き方と解答例を…

Game Theoryに参加した:ゲーム理論尽くしのプログラミングコンテスト

5月13日14時(日本時間)からHackerRankで開催された、Game Theoryというプログラミングコンテストに私は参加していました。この記事では、コンテストの概要や感想などについて書きます。