emacs、vim、sublime text、atom等々色々使ってきたが、最近はatomに落ち着いていた。 しかしながら、githubがmicrosoftの一員になって久しく、今後はatomの開発リソースがvscodeに集約されていくのかなといった感じもあり、vscodeを使ってみる。 vscodeに追…
はじめに AtCoder Beginner Contest 138 の「E - Strings of Impurity」問題です。 解説では、ある文字→ある文字への距離を事前計算する方法と、二分探索で解く方法の両方が紹介されてましたが、自分は二分探索で解きました。 解き方 結合後の文字は巨大なの…
はじめに AtCoder Beginner Contest 138に参加したのでその振り返り。 A,B,C,D解けて、Eは初級レベルの失敗でTLEに、、悔やまれる。 A - Red or Not と B - Resistors in Parallel Aはそのまま、Bはdoubleとか気をつけて実装する。 C - Alchemist 1回合成す…
問題概要 AtCoder Beginner Contest 116 の、D - Various Sushi。 解説や提出されたコード見ても???だったけど、自分で書いてみて理解できた。 解き方 種類ポイントのことは一旦忘れる 単にK個分、得点順にでかいものだけを食べていく 答えがこの種類数を…
AtCoder Beginner Contest 130のD - Enough Array。 ポイント ナイーブに実装するとTLEになるので尺取法で計算していく。 コード typedef long long ll; int main(int argc, char *argv[]) { ll res =0; ll n,k;cin>>n>>k; std::vector<ll> v(n); for(int i=0;i<n;i++){ cin>></n;i++){></ll>…
感想 AtCoder Beginner Contest 137のCoins Respawn。 自分のようなビギナーには、グラフ問題のエッセンスが詰まったような問題でいろいろ勉強になった。 ポイント Pは辺のコストとしてまとめて考えることができる 辺のコストに-1かけることで、最短経路問題…
AtCoder Beginner Contest 137に参加したので備忘録。 急いでA〜Dまで解いた結果、パフォーマンス的には1600を超えていたので、安定して速く解けるようになると青になれるのかな。 A - +-x 実装のみのスピード勝負。 B - One Clue これまたスピード勝負。 C …
久しぶりにプログラミングコンテストに参加。 今回は、AtCoder Regular Contest 097 - AtCoder Regular Contest 097 | AtCoder に。 AtCoderのコンテストは初めての参加ですが、結果は、C,D解けて、E,F解けず。1回しか参加してないのでまだ灰色ですが、5回コ…
久々にTopcoderに参加しようと直近の問題を練習がてら解いてみました。 まずはeasyから。 ちなみにGreedというプラグインをいれてみましたがかなり使いやすくておすすめです。 さて問題は、"303049"みたいな文字列が渡されるので、3で割れる部分文字列の数を…
こんな感じ。 普通のsplit "090-1234-5678".split("-") # => ["090", "1234", "5678"] splitしたものを結果に含める "090-1234-5678".split(/(-)/) # => ["090", "-", "1234", "-", "5678"] 改訂2版 パーフェクトRuby作者: Rubyサポーターズ出版社/メーカー:…
一部の値が重複してる配列があるとする。この中から重複しているものを取り出したい。 ary = [1, 2, 3, 4, 5, 5, 6, 6, 7, 7] こんな感じ ary.select{ |e| ary.count(e) > 1 }.uniq # => [5, 6, 7] 速い方法 ハッシュを作るので使うメモリは増えるが、先程の…
改行含む文字列の各行についてマッチさせたいとき。 mフラグをつけると各行の先頭にマッチします。 gフラグをつけると全てのマッチする文字列を探索します。 var str = "abcd1\nabcd2\nabcd3"; var regexp1 = new RegExp(`^abcd2$`); str.match(regexp1); //…
なんか変わってた。 let url = Bundle.main.url(forResource: "test", withExtension: "txt") print(url) let data = try! Data(contentsOf: url!)
みんな大好きKarabiner(旧 KeyRemap4MacBook)。macOS Sierraでは現状動かないみたいなので、代替品を探さなくてはならない。 とはいえKarabinerのライトユーザーだったので必要だったのは、以下のところだけ。 英語キーボードなので、 command(左) -> 英…
SwiftからObjective-Cのライブラリを呼び出してたらビルドは成功するのだが、エラー表示が消えなかった。 could not build objective-c module 'Foo' これはXcodeのキャッシュデータがおかしくなってるときに起きるみたい。 なので、そのキャッシュデータを…
No.430 文字列検索 - yukicoder 事前に1文字〜10文字分のすべての部分文字列をカウントしてmapに入れておいた。 なんか解説みて気づいたけど想定解とは違うのか。 signed main() { string S; int M; map<string, int> mp; cin>>S>>M; for (int i=0;i<S.size();i++){ for(int j=1;j<=10;j++){ if(S.size()-i>=j) mp[S.substr(i, j)</s.size();i++){></string,>…
No.33 アメーバがたくさん - yukicoder アメーバの分裂。 分裂が衝突しちゃうものを考慮しないといけない。 こういう問題、コンテストとかで出されたらミスしまくりそう。 signed main() { ll N,D,T; cin>>N>>D>>T; vector<ll> X(N); for(int i=0;i<N;i++) cin>>X[i]; sort(X</n;i++)></ll>…
No.32 貯金箱の憂鬱 - yukicoder 貪欲法ですね。高い紙幣・硬貨から順に使っていく。 signed main() { int L,M,N; cin>>L>>M>>N; int res = 0; # 1000円以上は全部無視 int amount = (L * 100 + M * 25 + N) % 1000; amount %= 1000; # 100円 res += amount …
No.11 カードマッチ - yukicoder この手のものは、一旦何も考えず全部足していって、最後に余計なものをひいていくのがうまくいくかな? set <ll> sets, setk; signed main() { ll W,H,N; cin>>W>>H>>N; for(int i=0;i<N;i++){ ll S,K; cin>>S>>K; sets.insert(S); setk.insert(K); } </n;i++){></ll>…
Could not cast value of type 'UIView' (0x107bcbdf8) to 'SKView' (0x10649bad0). (lldb) SpriteKitではじめる2Dゲームプログラミング Swift対応の第三章を進めていたらいきなりエラーが発生した。 これは実際にオブジェクトがSKViewでないため、ダウンキ…
-> % pod install Setting up CocoaPods master repo から何も進まないときは、単にgitレポジトリが巨大すぎてかなり時間がかかっている模様。 なので、ずーっと待つといつか終わるはずです。 気になる場合は、ctrl-cなどでキャンセルしてverboseオプション…
1日と見積もっていたタスクが2日かかった場合、 完了予定日は1日遅れるか、 見積もりの精度が2倍ずれていると考えると、全体のスケジュールも2倍に膨れ上がる ソフトウェア見積り 人月の暗黙知を解き明かす作者: スティーブマコネル出版社/メーカー: 日経BP…