IT・プログラミング

ABC433 C – 1122 Substring 2

この問題はランレングス圧縮を使って解くことが出来ました。以前ランレングス圧縮を使って解いた問題⇩同じ文字がどれだけ続くかが肝になるなと思ったので、ランレングス圧縮の考え方を使って、対象の数字と連続する個数をもつ配列を作りました。入力例1のよ...
IT・プログラミング

ABC432 B – Permute to Minimize

X を(先頭に 0 を含まない形で)十進表記した際に現れる数字を、先頭に 0 が来ないように 並び替えることで得られる正整数のうち、値が最小のものを求める。小さい順でソートして先頭が0の場合に、配列の前から見て0以外の値と先頭の0を入れ替え...
ロードバイク

容量十分で使いやすい!モンベルのフレームポーチをロードバイクに取り付けてみた

ロードバイクに乗るとき、スマホ・鍵・ちょっとした工具など「最低限だけど絶対に持ちたいもの」が意外と多くなりますよね。私自身、どこに収納するか毎回迷っていたのですが、モンベルの フレームポーチ を使ったところ、その悩みが一気に解決しました。こ...
IT・プログラミング

応用情報でよく出る!データベース正規化をまとめてみた

正規化とは?データベースの正規化とは、「データの重複や矛盾を防ぐために、表(テーブル)の構造を整理すること」です。例えば、社員の情報と部署の情報を1つの表に詰め込むと、部署名を変えるたびに複数行を修正しなければならず、更新ミスが起こりやすく...
IT・プログラミング

ABC431 D – Robot Customize

ロボットの頭と体に部品を取り付けられる。頭と体に取り付けるときにそれぞれ異なる嬉しさがあり、その嬉しさが最大になるように部品を取り付ける問題。ただしそれぞれの部品には重さがあり、体より頭が重くなってはいけない。まず全ての部品を体につけること...
IT・プログラミング

ABC430 C – Truck Driver

入力例1で考えていくA = 4以上B = 2未満まずはaとbの累積和を求めるidx01234567891011abbaaabaabaa011123445667b001222233344その後、lを固定した時に2分探索でaとbの条件に当てはま...
IT・プログラミング

ABC430 B – Count Subgrid

n行n列のグリッドからm行m列のグリッドを取り出して得られるマスの塗られ方が何種類あるかを求める問題。m行m列のグリッドを覚えておかないとと思って色々考えていたら、setで持てば良いのではと閃いて何とか解けました。m行m列を1次元のtupl...
IT・プログラミング

茶色コーダーになったので自分の現状まとめてみる

Atcoderで茶色レートになれたので現在の自分のレベルを記事にしておこうと思います。このブログでAtcoderの問題の解き方(というより復習?自分の思考の整理?)を記事にしていますが、こういうレベルの人が書いているということでご理解いただ...
IT・プログラミング

ABC429 C – Odd One Subsequence

整数列Aの中から2つは等しく、残りの1つは異なる組を満たす個数を答える問題どの数がいくつあるかを持っておけば良いなと思ったところまでは良かったですが、そのあとが思いつきませんでした。まず、辞書型の配列で以下のように出現頻度をもつことにしまし...
IT・プログラミング

ABC428 C – Brackets Stack Query

(と)の数をカウントして、同数になったときに良い括弧列とする形にしました。ただし、)(のような形は良い括弧列ではないので(の個数が)の個数以下の時に)がきたら、その場所を記憶しておき、その括弧がなくならないと(と)が同数でも良い括弧列とみな...
IT・プログラミング

プロジェクト管理における評価指標をまとめてみる

応用情報技術者試験を勉強しているときにEVMという単語が出てきてわからなかったので関連用語をまとめます。EVMとはEVM(Earned Value Management:アーンド・バリュー・マネジメント) は、プロジェクトの進捗を 「金額(...
IT・プログラミング

ABC426 C – Upgrade Required

1,2,...,NまであるOSのバージョンをクエリの条件に従ってアップグレードしていく問題。x yのような入力が与えられてx以下のバージョンをyにアップグレードする。一番古いOSのバージョンを記憶しておくと良く、またもし一番古いバージョンが...
IT・プログラミング

ABC425 C – Rotate and Sum Query

長さNの整数列Aが与えられる。Q個のクエリを順に処理していく問題。以降はA = を考えていくクエリ1ではAの先頭を末尾に移動する操作した結果、先頭がどこかを保持する。これをxとしておく。操作回数はc。初期値は0とし、c=1の場合、xは1にな...
IT・プログラミング

【Rust学習】ジェネリクスを勉強する

Rustを勉強していてジェネリクスの書き方が覚えられなかったので、備忘として記事に残しておこうと思います。ジェネリクスとは?ジェネリクスを一言でいうと、同じコードを、いろんな型に対応できるようにする仕組みまた、ジェネリクスは慣習的にTやUが...
IT・プログラミング

ABC424 C – New Skill Acquired

はじめに(A, B)=(0, 0)の習得済みのスキルを持っておきました。また該当のスキルを習得している場合に習得できるスキルをdictで持ちます。その後習得済みのスキルがあるだけループして、先ほどdictで持っておいたものの中から習得できる...
IT・プログラミング

逆ポーランド記法の由来とは? 数学から電卓まで広まった理由

逆ポーランド記法(RPN)の由来を解説。ポーランドの論理学者ヤン・ウカシェヴィチが考案した前置記法から生まれ、コンピュータや電卓で活用された背景を紹介します。
IT・プログラミング

ABC423 B – Locked Rooms

問題文は↑はじめに部屋の先頭と末尾にダミー(1)を入れ、それ以外の部屋に0を入れた配列を用意します[1, 0, 0, 0, 0, 1]その後、先頭と末尾からそれぞれロックされたドア(1)に当たるまで各配列の中身を+1しながらループします0の...
IT・プログラミング

ABC422 C – AtCoder AAC Contest

A、B、Cの文字をそれぞれ持っており、AとCは一つづつ使った上でその他の1文字を使い、AAC or ABC or ACCのどれかを最大いくつ作れるかといった問題。AとCは必ず使う必要があり、もう一つはAでもBでもCでも良いですが、Bの足りな...
IT・プログラミング

Geminiを使ってRustでクイックソートを勉強してみた

「クイックソート、実装できますか?」わたし自身は資格の勉強で名前を聞いたことがあるだけで実装したことがありませんでした。この記事では、テスト駆動開発(TDD)の手法を用いて、Rustでクイックソートをゼロから実装し、さらにパフォーマンスを計...
IT・プログラミング

何気なく使っていたJavaScriptのtoString()メソッドを整理する

JavaScriptでプログラムを書いていたときに、toStringメソッドを調べていたところ、いろいろなオブジェクトでtoStringメソッドが存在し、オブジェクトごとに使い方が異なるため整理してみました。toString()とは?Jav...