Cランクレベルアップメニュー【3の倍数・フラグ管理・インデックス・多重ループ・forループ 】
【STEP: 1】コード
reader.on('close', () => {
const n = lines[0];
const A = lines[1].split(' ');
let ans = 0;
for (let i = 0; i < n; i++) {
if (A[i] % 3 === 0) { // 3 で割り切れれば…
ans++; // ans を加算
}
}
console.log(ans);
});
3 の倍数を見つけるために a[i]
÷ 3 の余りが 0 になるかどうかで識別。
【STEP: 2】コード
reader.on('close', () => {
const n = lines[0];
let flag = false; // flag は "7" が 含まれるかどうかの真偽値(false で初期化)
for (let i = 1; i <= n; i++) {
const a = lines[i];
if (a === '7') { // a が "7" なら…
flag = true; // flag を true にして…
break; // 処理を止める
}
}
console.log(flag ? 'YES' : 'NO'); // flag が true なら "YES" false なら "NO" を出力
});
flag の初期値は false 。ループしながら if文で条件分岐し 入力が ″7″ であれば flag = true;
を実行してループをストップ。
【STEP: 3】コード
reader.on('close', () => {
const n = Number(lines[0]);
const k = Number(lines[n + 1]); // k は 基準となる金額
const A = new Array(n); // A の要素は n 人の財産
for (let i = 1; i <= n; i++) {
A.push(Number(lines[i])); // A に入力値を保存
}
console.log(A.indexOf(k) + 1); // A に含まれる k の 添字 + 1 を出力
});
a.indexOf(k)
で 配列 a に含まれる k の index が取得できますが 添字は 0 始まりなので +1 しています。
【STEP: 4】コード
reader.on('close', () => {
const m = Number(lines[0]);
const n = Number(lines[m + 1]);
for (let i = 1; i <= m; i++) {
const c = lines[i]; // c = 文字
for (let j = m + 2; j < m + 2 + n; j++) {
const S = lines[j]; // S = 文字列
let flag = false; // S に c が含まれるかどうかの真偽値
if (S.includes(c)) { // S に c が含まれれば…
flag = true; // flag は true
}
console.log(flag ? 'YES' : 'NO'); // flag が true なら "YES" false なら "NO"
}
}
});
二重ループで m * n 回 出力 。
S.includes(c)
で S に c が 含まれているかどうかの真偽値を取得して if文 の条件にしています。【FINAL】コード
reader.on('close', () => {
const [N, M, K] = lines[0].split(' ').map(Number);
for (let i = 1; i <= N; i++) {
const A = lines[i].split(' ').map(Number); // 紙に書いた M 個の数字
let count_k = 0; // k の数(最初は 0)
for (let j = 0; j < M; j++) {
if (A[j] === K) { // M 個の数字を個々に調べて K なら…
count_k++; // count_k を加算
}
}
console.log(count_k);
}
});
二重ループで N 回 出力 。
コメント