演習課題「n 変数の最大最小」
整数 n と、要素数 n の数列 A と、整数 k が与えられるので、数列 A に含まれる数のうち、k 番目に大きいものを出力してください。
右側のコードエリアには、入力を受け取り数列の各要素をチェックするループ処理をおこなうコードが用意されています。コードを書き加え、問題を解くコードを完成させてください。
【制約】
・ 入力は全て整数
・ 1 ≦ n ≦ 100
・ -100 ≦ (数列 A の各要素) ≦ 100
・ 数列 A の各要素は異なる
・ 1 ≦ k ≦ n
期待する出力値
2
演習課題「n 変数の最大最小」
整数 n と、要素数 n の数列 A と、整数 k が与えられるので、数列 A に含まれる数のうち、k 番目に大きいものを出力してください。
右側のコードエリアにはコードが用意されています。コメントを参考にコードを書き加え、問題を解くコードを完成させてください。
【制約】
・ 入力は全て整数
・ 1 ≦ n ≦ 100
・ -100 ≦ (数列 A の各要素) ≦ 100
・ 数列 A の各要素は異なる
・ 1 ≦ k ≦ n
期待する出力値
2
#07:トップkの探索
このチャプターでは、レベルアップ問題集「線形探索メニュー」の問題「k番目に大きな値」を、線形探索アルゴリズムを用いて解いていきます。
数列をソートすると、線形探索を行わずとも数列の k 番目に大きい値を求めることができます。const fs = require("fs");
// 入力を受け取る
const input = fs.readFileSync("/dev/stdin", "utf-8").trim().split("\n");
const n = Number(input[0]);
const a = input[1].split(" ").map(x => Number(x));
const k = Number(input[2]);
// 答えを出力する
console.log([...a].sort((a, b) => b - a)[k-1]);