code warsでプログラミング問題を解いてみた

お久しぶりです。

TECHEXPERTのカリキュラムも応用編が終わり、最終課題に入りました。

初めてのチーム作業なので沢山失敗して学べたらと思います。

 

最終課題以外の時間は好きな事に充てられるので、そろそろ転職先にPR出来るポートフォリオなりブログ記事なりのアウトプットを作成しないとな~って考えてるんです。

 

で、ポートフォリオ以外にPR出来るアウトプットって何よ?って考えたんですけど、

プログラミングスクールの体験談や本の丸写しではPRにはならないよな~と悩んでたところ、チェリー本の著者、伊藤淳一さんがブログでこんな事書かれていました。

https://blog.jnito.com/entry/2019/05/03/121235

提案:シンプルなプログラミング問題を自力で解いて、そのコードをアウトプットしてみよう

僕がオススメするのは、シンプルなプログラミング問題を自力で解いて、そのコードをアウトプットする、というアプローチです。

 プログラミング問題!

f:id:novalis222:20190517155158j:plain

というわけで早速やってみようとおもいます。

プログラミング問題はatcoderやpaizaなどにもあるのですが、

前者はガチ競技プログラミング

後者は自分のコードを採用担当に見てもらってPRする事もできる就活用というイメージで自分にとっては少し敷居が高いかな・・・と感じたので

code warsというイケてるサイトで問題を解いていこうと思います。

 https://www.codewars.com

 詳しい登録方法、問題の探し方なんかは以下の記事を参考にしました。

https://qiita.com/javacommons/items/7c473cda7825ab99e08c

code warsは自分のkyu (級 ランクのこと)が8 kyuから始まりまして、最高が1 kyuです。

kyu を上げるにはkata(問題のこと)をこなすことでkyuが上がっていきます。

とてもわかりやすくイケてますね。

 

早速問題を解いていってみましょう。

https://www.codewars.com/kata/even-or-odd/train/ruby

問題文

 Create a function (or write a script in Shell) that takes an integer as an argument and returns "Even" for even numbers or "Odd" for odd numbers.

引数に渡された数字が偶数だったらEven 奇数だったらOddって出力しろって事?

number % 2 ==0だったらEvenってことでいいじゃん!楽勝~!

回答1 

def even_or_odd(number)

  if number % 2 == 0 

    return "Even"

    else "Odd"

  end

end

 

 

・・・これ三項演算子使えばもう少し短く出来るな!

 

回答2

def even_or_odd(number)

 (number % 2 == 0) ? "Even" : "Odd"

end

 

 

・・・そういえばそもそも偶数かどうかbool値で返すメソッドがあったような気が。

回答3

def even_or_odd(number)

 number.even? ? "Even" : "Odd"

end

 

といった風にこんな簡単な問題でも様々な解法があるのが面白いですね。

解答したあとは人の解法も見れるのも勉強になっていい感じ。

こんな感じで問題を解いていって自分の考えた事をアウトプットしていこうかなと思います。