[Golang]アルゴリズム学習を学習しよう ~ハッシュとスライスでデータ検索~

こんにちは。KOUKIです。

とあるWeb系企業でGoエンジニアをしています。

Golangでアルゴリズムの学習をしましょう!

今回は、ハッシュとスライスのそれぞれで、データ検索するアルゴリズムを考えたいと思います。

ハッシュ-課題

変数に格納されたデータをループで回し、一番最初に重複したデータを取得する関数を作成せよ。

ハッシュ-回答

実装方法はいくつかあると思いますが、私は以下のように実装しました。

Mapの第二引数は、割り当てたkeyがデータ内に存在する場合はtrue、存在しない場合はfalseを返してくれます。

この性質を利用することで、課題内容をクリアしています。

スライス-課題

変数に格納されたデータをループで回し、先頭に格納されたデータが重複していた場合はその値を出力、重複していない場合は2番目のデータの重複をチェックし、重複していた場合は出力。これを重複データに当たるまで繰り返す。

スライス-回答

回答を以下に記載します。

単純な処理のため説明不要かと思いますので、結果だけ以下に示します。

まとめ

開発経験は4年ほどあるのですが、全て独学で、体験立てて学んでいないんですよね。全て我流というか。

しかし、もっとレベルの高いプログラマになりたくてアルゴリズムを学ぼうと決めました

アルゴリズムを制覇すれば、より高いレベルのプログラミングができると思うので、頑張りたいですね。

より高いレベルと書きましたが、「簡潔で、無駄がない、保守しやすいコード」を目指しています^^

それでは、また!

Go記事まとめ

アルゴリズム

Go記事まとめです

ソースコード

コメントを残す