LoginSignup
3
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-09-28

はい。言いたいです!

これ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.

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

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

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

3
2
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2