プログラミング問題を予備知識なしで解いてみる企画

· 2 min read
プログラミング問題を予備知識なしで解いてみる企画

普段やってる課題とは離れて、プログラミングの学習を始めてみます。
ただし、言語の基礎知識が全くない状態で始めるのでかなり非効率だと思います。

とあるプログラミング学習サイトの問題から内容を載せます。
本当は載せちゃいけないんだけど、このサイトは検索エンジンに引っかからないので
誰もたどり着かないと信じて書いちゃいます。
バレたら消します。


問題:三角形の内角の和

平面上の三角形の内角の和は全て足すと 180 度になります。

平面上の三角形の 2 つの角の角度 a, b が改行区切りで与えられるので残りの 1 つの角の角度を出力して下さい。

例えば以下のような入力の場合

60
90

以下のように出力して下さい

30
入力例1
60
90
出力例1
30
入力例2
45
45
出力例2
90

提出コード

  • 難易度:ランクD
  • 受験言語: Ruby
  • 回答時間: 26分4秒
  • バイト数: 162 Byte
  • スコア: 93点
# 最初に空の配列を作成する
input = Array.new
# while文で標準入力をlineに代入。判定を同時に行っている
while line = $stdin.gets
#chompは改行文字を消してくれる。最初split入れてたけど、数字が要素区切りになるので消した。
    input << line.chomp
end

# => ["60", "90"]

array = input.map(&:to_i).inject(:+)
#map(&:to_i)メソッドで配列の中の数字を数値として認識させる。(文字列として認識してる状態)
# => [60, 90]
#.inject(:+)で配列の中の要素をすべて合計する。railsだとinput.sumでもイケる
# => 150

# 内角の和を求めるので、単純にarrayの合計値から180を引く。
p 180 - array

平均回答時間3分52秒なので大分遅いっす。
でも意外とググればイケるもんだなぁと実感しました。

参考サイト

https://qiita.com/pencilrocketman/items/281449913e59feeb939d

https://qiita.com/rllllho/items/94e8fde8266f14275961