AtCoderでコードテストでは正しいのに提出するとWAになってしまう問題の解決法【JavaScript】

スポンサーリンク
JavaScript プログラミング

最近JavaScriptに慣れるための手段の一つとしてAtCoderを始めてみましたが、過去問を解いているとABCのA問題ですら詰まってしまう事が多いです。。

どんな感じの処理をすれば解けるのかはA問題なら小学生でも瞬時に想像できる程度のものですが、現実的には「それをJavaScriptで表現する」のと「競プロの問題への解答としての体裁を整える」2つの部分で主に詰まりがち。。

 

そんな問題の1つとしてタイトルにもあるように「コードテストでは正しいのに提出するとWAになってしまう」ケースがあります。

 

これはどうやら、「テストケースの標準入力の末尾に改行が入ってしまっている」というのが問題のようです。
入力の末尾に “.trim()” を付けて改行を削除すると、コードテスト同様に提出後も上手くいく模様。

例えば「AtCoder Beginner Contest 122」のA問題。
この問題は非常に単純な問題なのですが1つ落とし穴があり、入力されたデータを”input”のまま扱ってコードを組むとエラーになってしまうのです。

最初に “input = input.trim()” として改行を削除すると、inputに入力されたデータを正しく利用できるようになります。

ちなみに、提出画面にある「ケース名」下の「01.txt」「02.txt」「s1.txt」みたいなやつ(テストケース)の具体的な中身はこちらからダウンロードして見ることができます。
今回に限らず、WAになってしまった際にその原因を推測する手段としてテストケースの具体例を見てみるとたまに役に立つでしょう。
(WAになっているテストケースにおいて具体的を調べても尚見た目上問題がない場合、コードの本質的な部分が間違っているというよりは、この記事のように体裁面での問題であることが推察されます)

スポンサーリンク

AtCoder初心者の方へ

もしかしたらAtCoder初心者の方の中には、
「JavaScriptを使っている途中でつまづいてこの記事に辿り着いたよ!」
という方がいるかも知れません。

そんな方に1つ伝えておきたいことがありまして、それは
JavaScriptでAtCoderをするのはあまり推奨できないという事です。。

これは全ての方に当てはまる訳ではないのですが、
なんとなくJavaScriptでAtCoderをしている…という方は、まず他言語を検討する余地があるかと思います。

詳細は以下の記事に書いてありますので、
是非ご一読下さい。↓

JavaScriptでAtCoderに挑戦するのはオススメできません。【初心者向け】
「最近話題になってるAtCoderというのを始めてみたいけど、どの言語を使えばいいかわからない… そうだ!JavaSc...

コメント

タイトルとURLをコピーしました