久しぶりAtcoder触ってたらA問あたりで使える簡単な書き方を知った件

内容はメモ的な程度のもので 久しぶりにAtcoderに触れようと153回のABCを解いてました 後から自分のコードをもっと綺麗にかけなかったか参考していていたら面白い書き方を発見したのでメモ。

問題詳細

atcoder.jp

自分の書いたコード(python3)

h, a = map(int, input().split())
if h % a == 0:
  print(h//a)
else:
  print(h//a + 1)

勉強になったコード

h, a = map(int, input().split())
print(-(-h // a))

'20/2月のCA Tech Jobに受かった件

はじめに

今回は前回のC言語の入門記事に続く2つ目?の記事になりますね!

実は本日(1/20日(Mon.))にCA Tech Jobの即日内定させて頂き晴れて2月からAbemaTVの開発本部でインターンさせていただくことが決まりました!!

とりあえず、そのときの流れなどをメモとこうと思います

継続してアウトプットできるように頑張ろうと思います(p`・ω・´q)ふんっ


f:id:Doppon:20200121000653p:plain

そもそもCA Tech Jobって?

サイバーエージェントがほぼ通年でやっている就業型のインターンですね!
素晴らしいのがほんとにどの部署でも受け入れがあること!
もちろん繁忙期とかも絡んできていて、忙しいときは面倒が見れない等で運が悪いと希望の部署にいけないかもなんで少し注意が必要ですね..

因みに2020年の2月はアドテクのサーバーサイドが忙しくて受け入れができない状況だったっぽいです。(と自分は言われました!!)

CA Tech Jobのときの面接とか選考ってどんな感じなの?

実はどんな流れだったかとかはSlackにまとめておいたのでそれをコピペしようと思います..w

f:id:Doppon:20200120233306p:plain


で、実際面接の中はどうだったかだと思うんですけど
書類の時点でほぼほぼ決着が決まってたぽい雰囲気でしたね..

そもそもサイバーエージェントエントリーシートがまぁ重い(´・ω・`)

自分の場合は超大作の作文みたいなエントリーシートになった記憶があります、、w
1つの項目に1000字ぐらいかくところとかあったせいか、全部でたしか8000字ぐらいになってた気がします。

だからなのか、あのエントリーシートが通過すれば大方勝負が着いてる状態なのが正直なところなのかな?と思いました。

でも気は抜けないし、準備を怠るのは失礼なので色々と考えをまとめておきました!
(結局のところ自己紹介を頑張っただけでしたが...)

まぁ詳しくなにかあればツイッターまで!

2年ぶりぐらいにC言語のコード書いてたら&ってなに?ってなった件

【結論】

&変数名 として扱ったらそれはポインタ渡しである。

【サンプルコード】

#include <stdio.h>


/*  Result

     var1 - d: 100
     var1 - d: 0x7ffee6c0d8fc
 var2 = &var1: 0x7ffee6c0d8fc
*var2 =   255: 255

*/


int main(void) {
    int var1 = 100;
    int *var2;

    printf("     var1 - d: %d\n", var1);
    printf("     var1 - d: %p\n", &var1);

    var2 = &var1;
    printf(" var2 = &var1: %p\n", var2);

    *var2 = 255;
    printf("*var2 =   255: %d\n", var1);
}


サンプルコードでは2つの変数を使って ポインタ渡し 値渡し を行っています。
ポインタと言うのは割り当てのようなもので、変数だったりを保存させておくための部屋みたいなもの。

だから

var2 = &var1;

この部分でポインタ渡しを行ったことによってvar1とva2の2つの変数のリソースが統合されましたね。
なのでポインタの番地と最後の出力がvar2と1が一致するようになります。

【まとめ】

&変数名 として扱ったらそれはポインタ渡しであると言うことはつまり、割り当てられていた場所を渡しているので
渡した変数、渡された変数の2つは同じリソースを共有していることになる。
だから渡された変数に代入された値などは渡した変数にも影響がある。