paiza×Qiita記事投稿キャンペーンで
「プログラミング問題をやってみて書いたコードを投稿しよう!」
というお題が出ているのを見て
ふと皆でコードゴルフをしてみたくなり
投稿してみる事にしました。
コードゴルフとは問題文に対して
「より短いコード」を目指す遊びです。
正常に動作するならば
35 文字のコードより
34 文字のコードが優れているという事です。
「もっと短くできるよ!」
というのがあればコメント頂けると幸いです。
対戦よろしくお願いします。
条件
項目「一番小さい値 (paizaランク D 相当)」で最短のコードを探す。
使用する言語「paiza で使える任意の言語(なるべく短く済む言語を使用する)」
成功条件「paiza が用意しているチェックに全て通過する(paiza が用意していない入力で正常に動作しない分にはかまいません)(理論上 95% 以上の確率で、全てのチェックを通過するコードである必要があります。)」
改行と空白文字は 1 文字相当でお願いします。
cシャープの Main メソッドや php の "<?php ?> も文字数にカウントして下さい。
問題文の URL
https://paiza.jp/works/mondai/d_rank_skillcheck_sample/min_num
問題文
下記の問題をプログラミングしてみよう!
5 つの正の整数が入力されるので、最も小さい数字を出力して下さい。
▼ 下記解答欄にコードを記入してみよう
入力される値
入力は以下のフォーマットで与えられます。
n_1
n_2
n_3
n_4
n_5
1 行目から 5 行目に正の整数 n_1, n_2, n_3, n_4, n_5
が与えられます。
入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力
n_1, n_2, n_3, n_4, n_5
のうち最も小さい数字を出力して下さい。
条件
すべてのテストケースにおいて、以下の条件をみたします。
1 ≦ n_1, n_2, n_3, n_4, n_5 ≦ 100
入力例1
10
12
4
8
46
出力例1
4
入力例2
1
2
3
2
1
出力例2
1
私の回答(Ruby)
a=[]
5.times{a<<gets.to_i}
p a.min
私の回答はいかがでしたか?
私は頑張っても 34 文字かかりました。
空の配列を用意するのに
改行を含めて 5 文字かかっているのと
5 回繰り返す方法と
数値変換が短縮出来そうで出来ませんでした。
私は色んな言語を使ってみて
34 文字より短くすることが出来ませんでした。
paiza で使えるならば
どんな言語でも良いため
もっと短くできるという意見があれば
コメント頂けると幸いです。
個人的にコードゴルフの記事は大好物なので
paiza×Qiita記事投稿キャンペーンを機に
コードゴルフのゴルフの記事が増えたら嬉しいです。
皆でこのお題を楽しんでいきましょう。
この記事が皆さんの暇つぶしになりますように。
閲覧ありがとうございました。