きままにものづくり

日々の気付いたことなんかを書いてます。

起業にいたるまでの3つの出会い

これはEventHub  Advent Calendar 2021の12日目の記事です。昨日はYuto HaraさんのAccelerate EventHubでした。こちらもぜひ!

株式会社EventHubの開発責任者の井関です!

弊社は起業してから数年間は数名という規模だったのでアドベントカレンダーを埋めれる規模になったんだと思うと感慨深いです。

さて、今回はそんな自分が起業にいたるまでの3つの出会いを思い出しながらまとめていきます。

Pitapat

ひとつめの出会いはPitapatとの出会いです。

当時は大学生で右も左も分からない状態でしたが、Enginner Meetupというイベントで代表の合田さんと出会い、アルバイトとして働かせてもらいました。

Pitapatでは新規サービスの開発に関わらせてもらいましたが、サービスを作り上げる楽しさと、チームで取り組むことの楽しさに気づきました。

f:id:even_eko:20211209103856j:plain

tentalk

tentalkは、Givery主催のハッカソンで集まった有志どうしで作ったサービスの名前です。

Pitapatでサービス開発の楽しさに気づきましたが、自分自身で作ってみたいという思いからハッカソンに参加しました。

tentalkの開発を通してゼロからサービスを作る大変さや難しさと同時に、サービスをリリースするワクワク感や楽しさを知ることができました。

f:id:even_eko:20211209095208j:plain

TechCrunch

3つ目はEventHubの共同創業者の山本と出会うきっかけになったTechCrunchへの参加です。

はじめはTechCrunchが開催するハッカソンに参加しました。こちらで入賞したことでTechCrunch Tokyo 2014でLTに参加することができました。

イベント終了後に参加した人同士で飲むことになり、この時のつながりで山本と起業することになります。

f:id:even_eko:20141116215628j:plain

EventHub創業のきっかけ

f:id:even_eko:20211209104143p:plain

自分自身は人見知りな性格で初対面の人と距離をつめることに苦手意識がありました。ただ、振り返ってみると自分の考えを広げたり、新しい領域に挑戦してみようと思えたりと自分自身の可能性を広げるきっかけには常に誰かとの出会いがありました。

そんな体験・機会をもっと増やしたいという思いからEventHubというサービスを作りました。

まだまだやりたいことはあり、どんどん組織も拡大していくフェーズなので興味を持った方は是非カジュアルに話しましょう!

meety.net


次の記事はTamogamiさんです😆

SRM581Div1Easy

問題

N個のコンテナとM個の監視カメラを考える。監視カメラは連続したL個のコンテナを監視できる。コンテナが空の場合は"-"となり、何か入っている場合は"X"となる。カメラの位置は分からないが、カメラが監視している空でないコンテナの数は与えられる。
この時のコンテナの状態を求めよ。
ただし、コンテナの状態は必ず監視されている場合は"+"、監視されている可能性がある場合は"?"、監視されていない場合は"-"で表す。

解法

各コンテナを監視していないと仮定した時の与えられた条件を満たすかを確認することで、そのコンテナが"+"、つまり、必ず監視されているかどうかを判別できる。
必ず監視されているとは言い切れない場合は、そのコンテナを監視することができるかを調べる。これは、先ほどと逆で監視されていると仮定した時に条件を満たすかを調べればよい。

計算量

 O(N^2)
mapの挿入コストは無視している。

コード

SRM582Div1Easy

問題

N人の戦士が与えられ、それぞれの戦士の強さはs[i]である。また、M種類の強さes[j]を持つec[j]匹のモンスターも与えられる。戦士は自身より強さの小さいモンスターを討伐できる。戦士は一匹のモンスターを倒すと疲労度が1増える。すべてのモンスターを討伐する時のN人の戦士の中の最大の疲労度の最小値を求めよ。すべてのモンスターを討伐できない場合は-1を返す。

解法

最大の疲労度に対して二分探索を行う。最大の疲労度を固定することで、モンスターを討伐できるかの判定が可能になる。

計算量

 O(NM log V)
N: 戦士の数
M: モンスターの種類
V: モンスターの数

コード

SRM583Div1Easy

問題

N個の街がひとつの輪となるようにつながっている。各街からは電車が出ており、それぞれの電車は最大range[i]個の街を移動できる。startからendまで行くのに必要な電車に乗る回数の最小値を求めよ。

解法

最短路問題に帰着できる。
ダイクストラで解いているが、コストは1ずつしか増えないのでpriority_queueの代わりにqueueを使用している。

計算量

 O(N)

コード

SRM584Div1Easy

問題

ある国にはN人の国民がおり、それぞれ貯金を持っている。この国のルールとして貯金額の差がdより大きい人同士では友達になることはできない。
友人関係を示す情報とdが与えられた時、国民間での貯金額の最大値を求めよ。有限値でない場合は-1を返す。

解法

最短路問題に帰着できる。
最短路の中での最大値にdをかけ合わせることで答えが求まる。
ワーシャルフロイドを用いているので計算量は O(N^3)だが他のアルゴリズムを用いることで、計算量の削減ができる。

計算量

 O(N^3)

コード

SRM585Div1Easy

問題

高さNの二分木が与えられる。すべてのノードに車が通るようにするためには、最小でいくつの車が必要か求めよ。
ただし、車は他の車も含め一度通ったノードをもう一度通ることはできない。

解法

動的計画法で求まる。
 f(n) = f(n-1) + 2f(n-2)
一番外側のノードを一台の車に走らせると、n-2までの二分木が2個ずつできあがる。このまま、計算すると O(N^2)となってしまうので、一つ前の要素を用いて O(N)にする。

計算量

 O(N)

コード

SRM586Div1Easy

問題

サイズNの配列Yが与えられる。配列の要素は座標を示しておりインデックスをxとした時、(x, Y[x])となる。隣り合う点どうしを直線で結びグラフを作成する。
x軸と平行な線と作成したグラフとの交点の最大数を求めよ。

解法

yに小数点をとることも可能なので、Yのすべての要素に2をかける。
Y[x]、Y[x]+1、Y[x]-1となる平行線を引き、すべてのxに対して調べることで答えが求まる。

計算量

 O(N)

コード