デジマ部

SEO、デジタルマーケティング、ウェブ解析、ウェブ改善などについてのメモ

paizaのスキルチェック標準入力のやり方(JavaScript)

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の標準入力」でつまづいている方のヒントになれば幸いです!