エンジニアになる

そんなに”私ソフトウェアエンジニアです”って言いたいですか?

More than 1 year has passed since last update.

はい。言いたいです!

これ1時間以内で書けたらエンジニアでーす✌︎って言ってもええらしいすー!
http://www.shiftedup.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour

ってことで、Rubyで一つずつやってみる。
英語得意ちゃうんで間違ってたら訂正してください🙇

1. 数字の入った配列の合計求めてみ

nums = [1,2,3,4,5]
nums.sum # => 15

# sum使うなとか言われそう。

nums.inject { |sum, num| sum + num } # => 15

# もっとエレガントなのありそう
# あった!

nums.inject(:+) # => 15

# How Elegance !!

2. 2つの配列の値を交互に格納した配列作ってみ

arr1 = [1,2,3]
arr2 = ['a', 'b', 'c']
arr1.zip(arr2).flatten # => [1, 'a', 2, 'b', 3, 'c']

3. フィボナッチ数列って聞いただけ拒絶反応起こしました。

フィ、フィ、フィボナッチ!?

(0..100).inject([0, 1]) {|fib, i| fib << fib[i] + fib[i+1] }

らしいです。。。
http://blog.toshimaru.net/ruby-inject/

4. 配列に入ってる数字で最大値作ってみーや

arr = [50, 2, 1, 9]
asc = arr.join().split('').sort {|a, b| b <=> a} # => ["9", "5", "2", "1", "0"]
asc.join() # => "95210"

修正:50を5と0に分割してはいけないので、正しくは下のようになります。
input = [50, 2, 1, 9]
output = input.map(&:to_s).sort{|a, b| b + a <=> a + b}.join().to_i

5. 1〜9の間にプラスかマイナス入れて必ず100になるようなの作ってみーや

# 順番は固定、数字と数字の間に(+、−)を入れる。もしくは数字を結合して、結果が100になる式を作るんやて。
# しかも全パターン出力してみなはれ。やて。
# 1,2,3,4,5,6,7,8,9

# 例えばこんな感じ: 1 + 2 + 34 – 5 + 67 – 8 + 9 = 100.

# ちょっと何言ってるかわからないです。はい。

てことで、出直してきます。
普段何してるんですか?って聞かれたら、ニートです!って言います。

他の言語でも良いので、エレガントなコード教えてくださると喜びます🙇