水面下の夢

競プロやイラストに興味があります.メインブログがここ.同人サークル「かのらぶ」のページはこっち( https://yumechi0525.amebaownd.com ).ブログアイコンはYaQ(@8_9_00)さんから.

人との関わりと自分自身と(ガチポエム)

新卒時代の自分自身の人との関わり方を見ると、結構もったいないなと感じることが今多い。

機会があれば、は機会を確実に作らなければ達成されることでないし、興味があれば自分から近づいて個人的に話を持ちかけるしかない。

当時のボクはその辺充足されすぎていて何か見えていないものがあったような気がする。機会はいくらでもあったのに生かせてなかったな、と視点が広がった今ではそう思う。

後は作りたいだけで、プロダクトを成長させていくこと、システム利用者を満足させること、その辺も考えが及んでいなかったなあと。

自分自身では緩やかな変化で気づくことができなくても、久々に会った人から意見を貰うと客観的に見られる部分もあって、その辺りはここ2年くらいで成長できているらしい。(まだ実感は湧いていない)

自分自身で見えないところをまだ他者から教えていただけることは、恵まれていることだなと改めて思うのでした。

私もそういう人になれたらいいな。もっと強くなろうと、また思えたのでした。

メモ:Githubのプルリクエストをコマンドラインから出せるツール「hub」

私用メモ。

普段からめんどくさがりなので、なんかそういうこと出来ないかなと思っていたので、試した。

参考にした記事。

コマンドラインでGitHubにプルリクエストを送る by @slowquery on @Qiita

github/hub: hub helps you win at git.

あれ、これもしかしなくても公式のリポジトリ…?

公式のリポジトリを見ればわかるが、Macの場合、Homebrewで入る。1

brew install hub

そしてprofileにaliasを貼る。私はzshを使用しているので、.zshrc に追記。 これ重要。alias貼ってない状態で何故か動いたんだけど、ユーザー情報が紐付けられず、おかしなことになり、混乱した。2

eval "$(hub alias -s)"

上記が終わったら一旦terminal再起動。(exec zsh でもいいかもしれないけど、念のため)

で、プルリクエストを送りたいリポジトリのフォルダに移動して。

hub pull-request

これで1行目にタイトル、3行目以降に内容を書けば自動的に追加されます。

すごいね。


  1. Homebrew、便利なのは認めているが、これに依存した開発が多すぎるのがこわい。

  2. こうなった。このコミットの通り、何故か情報がない。 そもそもこれgitのglobal設定を何かの拍子で変えたことが原因だったようなのだが、何が原因なのかよくわからないため混乱中です…。

ABC079所感

調子が悪かったので寝ていたら終わってました。1時間以下で解けてしまったので所感だけ。

コンテストURL

https://beta.atcoder.jp/contests/abc079

問題

A問題

A - Good Integer

4桁の数字が与えられるので、上3つまたは下3つが同じ数値ならYes、そうでないならNoを出力する。

言語:Python3

print("Yes" if (lambda x: int(x[1:])%111==0 or int(x[:-1])%111==0)(input()) else "No")

B問題

B - Lucas Number

ある法則で与えられるリュカ数を計算して出す問題。フィボナッチ数列求めるみたいに出来る。nまで求めればと良かったが、どうせ同じようなものを毎回求めるため、毎回n=86になるものまで求めて出しておいた。

言語:Python3

l = [2, 1]
for i in range(2, 87):
  l.append(l[i-2]+l[i-1])
print(l[int(input())])

C問題

C - Train Ticket

与えられた4つの数値を加減算で7になるものを求める問題。

…はい。制約見て大丈夫なので即全探索でevalします。zipでまとめてから、Dの部分だけ足してあげると見やすいかな、と思って最終的には下記の形になりました。

言語によっては最初のABCDをパースするところが若干難しいんじゃないかな?

言語:Python3

l = list(input()) 
for i in range(8):
    p = ["+"if i&j else"-" for j in[1, 2, 4]]
    line = "".join([v+o for v,o in zip(l,p)]) + l[3]
    if eval(line) == 7:
        print(line + "=7")
        break

D問題

D - Wall

最小コストで壁画の数値を変換してくださいという問題。

前提として-1, 1は変換対象にしません。その上で予め ダイクストラ ワーシャルフロイド法を使って、N → 1 の変換の最小コストを求めておき、その計算結果を使って変換をかけてあげればOKです。

表の大きさが固定値の ダイクストラ ワーシャルフロイドなんて初めて使いました…。

※ワーシャルフロイドでといているのに、ダイクストラと書いてたのはなぜ…(Twitterで指摘頂いたので修正)

言語:C++ コードは長いためリンクとし、省略します。 https://beta.atcoder.jp/contests/abc079/submissions/1789416

まとめ

出とけばよかった。割りと得意な問題が出ていたので、全完セットだと思う。Twitterで答え要約を見てから解いたが、50分程でトキ終わっているので、おそらく本番で出ても今回は行けたセットだと思う。

惜しいことをした…。体調管理はしっかりやっておこう。

これはひどい