paizaのスキルチェック標準入力のやり方(JavaScript)
対象者:
JavaScript初心者でpaizaのスキルチェックをやりたい人
一般的なnode.jsの標準入力というよりも、paizaスキルチェックピンポイントでの解説となっております!
paizaスキルチェックでは具体的な問題の公開や解説などは、禁じられているので行いません。ただ、そもそものJavaScriptのプログラミングの考え方はわかっているのに、paizaスキルチェックの「標準入力」がネックとなって「どうやって数値を取得していいかわからない」という人のために、そこだけ解説します。自分もそこで結構悩みました。
「標準入力」って何?
paizaラーニングの以下の講座で標準入力が解説されています。一部有料です。
https://paiza.jp/works/search_chapters/3003
コードはどこから変更するべき?
paizaスキルチェックでは、様々な言語を使うことができます。JavaScriptを選ぶと、かなり多くのコードが出現します。そこで、どこを触っていいかわからなくなるのですが、コードの最後の方に常にデフォルトで以下のコードが出てくるので、それを使います。
console.log(lines[0]);
ここ以降を編集し、最終的には解答だけをログで表示するようにします。
複数行に分かれて入力される時
lines[0] // 1行目のデータ
lines[1] // 2行目のデータ
lines[2] // 3行目のデータ
lines[3] // 4行目のデータ
・
・
・
l ines[n] // n+1行目のデータ
例)2つの整数(n,m)が与えられる
——
n
m
——
この場合、データが別れて複数行に分かれているので
lines[0] // n
lines[1] // m
となります。
データ型を「数字」にする
また、データ型にも注意してください。
paizaスキルチェックは多くの場合、数字も「文字列」として与えられます。
そこで、数字の計算を行うには、parseInt()
を使います。
例)
let n = parseInt(lines[0]) // 与えられた1つ目の数字が数値型として変数nに代入される let m = parseInt(lines[1]) // 与えられた2つ目の数字が数値型として変数mに代入される
この後で、n+mなどの演算をすることができます!
1行に、複数のデータが与えられるとき
例)
——
n m
——
こんな感じで、一行に、複数のデータが入ってくる場合ですね。よくあるのは「数字」が「半角スペース
この場合、
lines[0] // 1行目のデータに、複数のデータが含まれている
そのままだと計算などできないので、一旦、「切り離して」一つずつのデータを配列に格納する必要があります。split()
を使います。こんな感じ。
例)
let arr = parseInt(lines[0].split(‘ ‘));
arrという配列が[’n’, ‘m’]という形になりました。`
これをさらに配列で取り出すことで……
let n = arr[0]; //1つ目の数字が、nに代入される
let m = arr[1]; //2つ目の数字が、mに代入される
これも、上で述べたように、文字列で与えられている場合は、parseInt()
をかませることで、その後、演算ができるようになります。
以上、paizaのスキルチェックをやりたいけど「JavaScriptの標準入力」でつまづいている方のヒントになれば幸いです!