paiza Code Girl Collection #ガルこれ
URL | |
---|---|
コードガールこれくしょん | https://qiita.com/cielavenir/items/ea97544089a5a3ca686f |
コードクロニクル | https://qiita.com/cielavenir/items/3124ec862325682d381d |
- Code Gym betaの時から言えることだけど、早解き問題を複数やることは本当に良いのか疑問だったりします。
- 真面目な方はpaizaラーニングの演習問題だけやればよいです。
- 逆に言うと、paizaラーニング基礎編第一部が完了してからゲームを始めることで、ほぼ一発でダイヤ6個取れることに。
以下、私自身は順位を気にしていないので、書きたいことを書きます。
(順位を上げるために自動解答スクリプト突っ込んでいる人がいるようなので、もはや不毛)
200307
- プライマリガール「貂蝉」(スコア8%)で52380点取れました。これはどういうことだろう。。コードクロニクルに入った言語はこちらも問題差し替えになったのかな?
160906
- プライマリガール「侍」(スコア7%)で35587点取れました。久々の更新。
共通
-
1==x
はどの言語でも問題なく評価されます。x==1
よりも打ちやすい場合は積極的に行きましょう。
Ruby
閏年判定
-
Date#leap?
でいけます。date=Date.now; if date.leap? ...
みたいな問題だったような。leep?
ではないのでそこだけ注意。 - ただ、
leap?
を初心者に推奨するのはどうなんだろう。本当はロジックを書くべき。
乱数
-
rand(start..stop)
です。
範囲逆順
-
(start..stop).to_a.reverse
でも良いですが、[*start..stop].reverse
でも良いし、(start..stop)
で回して出力を調整するのも勿論あり。 - ちなみに個人的にはRubyでのfor文はお薦めしません。つまり
stop.downto(start) do |i|
が正解。打ちにくいので諦めますが。- [追記] for の後ろに
stop.downto start
とするのが良さそう。括弧は不要。
- [追記] for の後ろに
年の下2桁
-
year%100
で通ります。本当はsprintf('%02d',year%100)
ですが、そんなに長ったらしい物は書きたくない。
PHP
暗算
- PHPは、
<?php ... ?>
の外に書いた語句は単にechoされる性質があるので、(入力を取らない問題については)暗算して、解答画面をクリアして答えを書いて実行するのが最速。
序盤
- ダイヤ6個狙いとして、
$x.$y.$z
なんて5秒で打つのはかなり困難ですが、中盤以降は制限時間多めになるので頑張って打ちましょう…あとは問題の運。
date
- 年
date('Y')
2桁date('y')
- 月
date('n')
- 日
date('j')
- 閏年
date('L')
Python
バージョン
- paizaラーニングで確認したところ、
3.4.3
でした。 printは括弧が必要、入力はinput() なので注意。あと、448/14==32 .0 です。
閏年
- import文で示唆されていますが、
isleap(year)
です。
乱数
-
random.randint(start,end)
です。
Java
序盤
- ダイヤ6個を狙うとすれば、タイピングスピードの影響をもろに受けるので、
System.out.println("");
をクリップボードに入れておくと吉。
乱数
-
new Random().nextInt(end-start)+start
です。面倒くさいので1に固定しましょう。
C
序盤
- 「printf」をコピーしておくこと。
文字列結合
-
printf("%s%s%s",s1,s2,s3);
で良いと思います。Cでこの問題設定はよくない。
乱数
-
rand()%(end-start)+start
です。
今年
tm_now->tm_year+1900
ミス
- 1問だけ、「eles」と書かれたコードが有りますが、当然構文エラーなので、直す必要があります。
- 問題の本質と関係ない部分なのでつらい(不正解のときはsyntax errorなら出して良いのでは?)
C#
- なぜかダイヤ6個制限時間が一律60秒なので他の言語より大幅に楽。てか他の言語も60秒にしてくれ(そのほうが初心者にやさしい)。
ミス
- 「448から14を割り算した結果を出力する」問題ですが、答えは 31 です。どうしようもないので答えを埋め込んでください。
- 31になる腐った言語があった気がしますが、何だったかな…。
- マイナーな言語であるという記憶はあるのだけど、なんとも。
乱数
-
new Random().Next(end-start+1)+start
です。
C++
- C++特有の機能以外はCのセクションも参照のこと。
- 出力問題のごく一部にしかあてはまりませんが、出力が1行の場合、
<<endl;
は不要です。
include <cstdlib>
- paizaはC/C++の実行環境にclangを採用しています。
-
rand()
がcstdlibなしで使えるのはclangのみです。 gccでは必要なので注意して下さい。
ミス
- x==2の問題が不正解になるときは、x=1をx=2に初期化し直してみてください。
JavaScript
セミカンマ
- 行末のセミカンマは不要です。
乱数
-
parseInt(Math.random()*(end-start))+start
です。
Author And Source
この問題について(paiza Code Girl Collection #ガルこれ), 我々は、より多くの情報をここで見つけました https://qiita.com/cielavenir/items/ea97544089a5a3ca686f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .