【paiza】javascriptでこれから頑張るあなたへ
はじめに
paizaをjavaScriptで始めようとしたけど全然説明ないじゃんorzと嘆き悲しんでいる方々へ贈るレクイエムです。これさえ使えれば、あとは何とかなるはず!
値の取得
オーソドックス
入力された値が一つなら
const a = lines[0]
console.log(a)
複数の場合は分割代入で一気にやります
const [a, b, c, d] = lines[0].split(' ')
console.log(a,b,c,d)
Number型にしたいとき
基本的には、最初からNumber型にすることを勧めます。計算してておかしいとなると、最初に戻って二度手間になってしまいます。
入力された値が一つなら
const a = parsInt(lines[0])
console.log(a)
複数の場合はmap関数を使います
const [a, b, c, d] = lines[0].split(' ').map(Number)
console.log(a,b,c,d)
配列
配列の作成(空配列にpush)
最近はあんまり使っていない。
const arr = []
for (let i=0;i<n;i++) {
const input = i * 2 // 任意
arr.push(input)
}
console.log(arr)
配列の作成(初期値0の配列)
基本はこちらでやっています。配列の数や初期値が決められるので良いです。
何かおかしいときも気付きやすいです。
const arr = [...Array(n)].map(() => 0)
arr[0] = a
for (let i=1;i<n;i++) {
const input = i * 2 // 任意
arr[i] = input
}
console.log(arr)
console.log(arr[k]) // 配列のk番目
特に配列の何番目かを問われる際はarr[0]をないものとみなして、arr[1]からarr[n]までのようにすると解きやすいです。
配列の長さや、for文の条件は間違えやすいので注意しましょう。
tips
console.log()の癖をつける
ちくいち値の確認をしましょう。
確認せずに最後まで突っ走ると痛い目を見ます…
const a = mogmog
// console.log(a)
const b = hahaha
// console.log(b)
入力値を自分で作る
最初にconstで設定した値をコメントアウトして適当な値を入れて実験するのは大事です。
// const [n, x] = lines[0].split(' ').map(Number)
// console.log(n,x)
const n = 4
const x = 32
あとはn、xを代入して確かめてください。
入力値2を使う
少々面倒ですが、入力されるデータを自由に変えることが出来ます。
まずは普段コードを書いているところ以外をコメントアウトします。
process.stdin.resume();
process.stdin.setEncoding('utf8');
// 自分の得意な言語で
// Let's チャレンジ!!
var lines = [];
var reader = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
reader.on('line', (line) => {
lines.push(line);
});
reader.on('close', () => {
普段コードを書いているところ!
});
あとはlinesを自分で設定します。
const data = `
ここにコピペもしくは、好きな値を入力
`
const lines = data.trim().split('\n');
console.log(lines)
データの確認が取れたら元に戻しましょうね。
参考にしたページ
レベルアップ問題集をとにかく解いて(課金してもらって
分からなかったらとにかくググって。
それでも分からなければ、javaの答えを参考にするとよいです。かなり構文が似ているので分かりやすいです。
ホントにそれでも分からなかったら、以下のページでで答え合わせをする流れで良いかと思われます。
最後に
自分もまだまだ出来ていないことだらけなので、おかしな点があったらコメントしてください。
こんなやり方もあるよと書いて下っても嬉しいです!
日本語おかしいよ、お前おかしいよという指摘もどうぞ…
もちろん分からないことがあれば聞いてください!
何でもいいのでコメント書いていただけると単純に嬉しいです(それだけ)
Discussion