茶色コーダーが復習を兼ねてブログにまとめていく
 IT・プログラミング
            IT・プログラミング    茶色コーダーになった自分の現状まとめてみる
        Atcoderで茶色レートになれたので現在の自分のレベルを記事にしておこうと思います。このブログでAtcoderの問題の解き方(というより復習?自分の思考の整理?)を記事にしていますが、こういうレベルの人が書いているということでご理解いただ...      
                        
     IT・プログラミング
            IT・プログラミング    ABC429 C – Odd One Subsequence
        整数列Aの中から2つは等しく、残りの1つは異なる組を満たす個数を答える問題どの数がいくつあるかを持っておけば良いなと思ったところまでは良かったですが、そのあとが思いつきませんでした。まず、辞書型の配列で以下のように出現頻度をもつことにしまし...      
                        
     IT・プログラミング
            IT・プログラミング    ABC428 C – Brackets Stack Query
        (と)の数をカウントして、同数になったときに良い括弧列とする形にしました。ただし、)(のような形は良い括弧列ではないので(の個数が)の個数以下の時に)がきたら、その場所を記憶しておき、その括弧がなくならないと(と)が同数でも良い括弧列とみな...      
                        
     IT・プログラミング
            IT・プログラミング    ABC426 C – Upgrade Required
        1,2,...,NまであるOSのバージョンをクエリの条件に従ってアップグレードしていく問題。x yのような入力が与えられてx以下のバージョンをyにアップグレードする。一番古いOSのバージョンを記憶しておくと良く、またもし一番古いバージョンが...      
                        
     IT・プログラミング
            IT・プログラミング    ABC425 C – Rotate and Sum Query
        長さNの整数列Aが与えられる。Q個のクエリを順に処理していく問題。以降はA = を考えていくクエリ1ではAの先頭を末尾に移動する操作した結果、先頭がどこかを保持する。これをxとしておく。操作回数はc。初期値は0とし、c=1の場合、xは1にな...      
                        
     IT・プログラミング
            IT・プログラミング    ABC424 C – New Skill Acquired
        はじめに(A, B)=(0, 0)の習得済みのスキルを持っておきました。また該当のスキルを習得している場合に習得できるスキルをdictで持ちます。その後習得済みのスキルがあるだけループして、先ほどdictで持っておいたものの中から習得できる...      
                        
     IT・プログラミング
            IT・プログラミング    ABC423 B – Locked Rooms
        問題文は↑はじめに部屋の先頭と末尾にダミー(1)を入れ、それ以外の部屋に0を入れた配列を用意します[1, 0, 0, 0, 0, 1]その後、先頭と末尾からそれぞれロックされたドア(1)に当たるまで各配列の中身を+1しながらループします0の...      
                        
     IT・プログラミング
            IT・プログラミング    ABC422 C – AtCoder AAC Contest
        A、B、Cの文字をそれぞれ持っており、AとCは一つづつ使った上でその他の1文字を使い、AAC or ABC or ACCのどれかを最大いくつ作れるかといった問題。AとCは必ず使う必要があり、もう一つはAでもBでもCでも良いですが、Bの足りな...      
                        
     IT・プログラミング
            IT・プログラミング    RustでAtCoder Beginners Selectionを解き切ったので学んだことを書いていく
        Rustの勉強に良いかなとAtcoder Beginners Selectionを少しづつ進めていましたが、ようやく全て解いたので学びをまとめていこうかと思いますRustでAtcoderを始めるときのテンプレート私はRustでAtcoder...      
                        
     IT・プログラミング
            IT・プログラミング    ABC416 C – Concat (X-th)
        今回のC問題はitertoolsのproductを利用し、全列挙した後にソートすることでで解けましたfrom itertools import productdef i_map(): return map(int, input().spli...      
                        
     IT・プログラミング
            IT・プログラミング    ABC415 C – Mixture
        Atcoder Liveの方で聞いた解説が一番理解できました個人的には以下の図で考えるのが一番わかりやすいかなと思っていて、状態0から薬品を混ぜて遷移できる状態を深さ優先探索のような形で辿っていきますこの時にすでに到達していた場合や、S(瓶...      
                        
     IT・プログラミング
            IT・プログラミング    ABC410 C – Rotatable Array
        この問題はクエリのタイプに従って処理を行う問題です。この問題ではクエリのタイプ3の処理を高速化しないとTLEになってしまいます。初期状態が以下だとします。i01234A12345タイプ3のクエリで「 A の先頭の要素を末尾にする」という操作...      
                        
     IT・プログラミング
            IT・プログラミング    ABC409 C – Equilateral Triangle
        ギリギリになって、累積和で点の座標を求めるところまで思いついたのに、正三角形を求める方法が思いつきませんでした。悔しい、、今回も解説を読んでいきます。問題円周上の点1,2,...,Nが配置されていて、点i+1は点iから時計回りに円周上をdi...      
                        
     IT・プログラミング
            IT・プログラミング    ABC408 C – Not All Covered
        全く解法が浮かびませんでした、、、imos法という方法で解くらしいです。解き方imos法では以下のような表を考えると、わかりやすいのかなと思います。入力例1で考えます。imos法の詳細な解説はこちらを確認するのが良さそうです。i123456...      
                        
     IT・プログラミング
            IT・プログラミング    ABC407 C – Security 2
        本日はABC407 C - Security 2について見てみようと思います。言語はPythonになります。問題画面に表示される文字列tがあります。tは最初空文字でボタンを押すと以下の変化が起こります。ボタンA:末尾に0追加。ボタンB:tの...      
                        
     IT・プログラミング
            IT・プログラミング    ABC406 C – ~
        この日はB問題までしかできませんでした。C問題が全くわからなかったので解説を読んでいくことにします。まず最初にPの大小関係を < と > を使い文字列Sで表します。1 3 6 4 2 5上記であれば<<>><ですね。この時Pがチルダ型である...      
                        
     IT・プログラミング
            IT・プログラミング    ABC406 A – Not Acceptable
        問題自体にはACできたのですが、スマートな書き方があるようだったので、その書き方についてまとめます。言語はPythonです。自分がACしたコードは以下です。def i_map(): return map(int, input().split...      
                        
     IT・プログラミング
            IT・プログラミング    ABC405 C問題 – Sum of Product
        本番ではTLEになってしまった。例えばN=4の時、A1*A2 + A1*A3 + A1*A4 + A2*A3 + A2*A4 + A3*A4 はA1(A2+A3+A4)+ A2(A3+A4)+A3*(A4) になる。先にAを合計して、都度合...      
                        
    