完全に自分用のチートシートです。
これを読み通せばB問題は解けるくらいの内容にしたいです。
随時更新予定
#コード
##標準入出力
Standard
function Main(input) {
input = input.split("\n");
var N = input[0];
var line = input[1].split(" ");
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
Main関数の中にプログラムを記述する。
inputを入力用の引数とする。
inputに入れたものをsplit("\n")で行毎に配列にする。
次に一行目を変数Nに、
二行目をsplit(" ")でスペース毎に分割して、配列lineとして格納。
7行目はおまじないで大丈夫
paiza形式では以下風になる
◇開く◇
Standard_paiza
process.stdin.resume();
process.stdin.setEncoding('utf8');
var lines = []
var reader = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
reader.on('line', (line) => {
lines.push(line);
});
reader.on('close', () => {
var N = lines[0];
for(var i = 0; i < N; i++) {
var line = lines[i+1].split(" ");
}
});
##型変換
###文字列から数値 また 数値から文字列
StringToNumber
var s = '1';
console.log("s は "+typeof s);
s = parseInt(s);
console.log("s は "+typeof s);
s = s.toString();
console.log("s は "+typeof s);
/*
s は string
s は number
s は string
*/
####文字列から数値(配列)
ArrayStringToNumber
var p = ['5','2','9','6'];
console.log(p);
p = p.map(p => parseInt(p,10));
console.log(p);
/*
[ '5', '2', '9', '6' ]
[ 5, 2, 9, 6 ]
*/
参考元 : JavaScript で文字列の配列を数値の配列にしたい@scalewallet
##配列の並び替え
###アルファベット順
アルファベット順
var str = ['d', 'a', 'b', 'c'];
str.sort();
console.log(str);
/*
[ 'a', 'b', 'c', 'd' ]
*/
###アルファベット順 または その逆順(アロー関数)
アルファベット順 または その逆順
var str = ['d', 'a', 'b', 'c'];
str.sort((a, b) => {return a>b;});
console.log(str);
str.sort((a, b) => {return a<b;});
console.log(str);
/*
[ 'a', 'b', 'c', 'd' ]
[ 'd', 'c', 'b', 'a' ]
*/
###数値の並べ替え
数値の並べ替え
var number = [3, 7, 1, 5];
number.sort((a, b) => {return a-b;});
console.log(number);
number.sort((a, b) => {return b-a;});
console.log(number);
/*
[ 1, 3, 5, 7 ]
[ 7, 5, 3, 1 ]
*/
####オブジェクトの並べ替え
var lists = [
{str: 'a', num: 3},
{str: 'b', num: 2},
{str: 'c', num: 4},
{str: 'd', num: 1}
];
lists.sort((a,b) => { return (a.str > b.str)? 1 : -1; });
console.log(lists)
lists.sort((a,b) => { return (a.num > b.num)? 1 : -1; });
console.log(lists);
/*
[ { str: 'a', num: 3 },
{ str: 'b', num: 2 },
{ str: 'c', num: 4 },
{ str: 'd', num: 1 } ]
[ { str: 'd', num: 1 },
{ str: 'b', num: 2 },
{ str: 'a', num: 3 },
{ str: 'c', num: 4 } ]
*/
これを使った問題
AtCoder Beginner Contest 128 B - Guidebook
解答
AnswerExample
function Main(input) {
input = input.split("\n");
var N = parseInt(input[0]);
var lists = [];
function List(name,score,num){
this.name = name;
this.score = score;
this.num = num;
}
//コンストラクタ Listの定義
List.prototype.show = function(){
return this.num;
}
//prototypeプロパティによりコンストラクタListにメソッドshowを生成
//showの内容はListのnumを返す
for(var i = 0;i < N;i++){
pass = input[i+1].split(" ");
lists[i] = new List(pass[0],parseInt(pass[1]),parseInt(i+1));
}
lists.sort((a,b) => { return (a.name > b.name) ? 1
: (a.name < b.name) ? -1
: (b.score >= a.score)? 1 : -1; });
//ソートの安定性について@masha_uさんに指摘&助言いただきました
//ありがとうございます
for(var j = 0;j < N;j++){
console.log(lists[j].show());
}
//console.log(lists);
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
@masha_uさん
###配列メソッド
####先頭の要素を切り取って、返す shift()
shift
var number = [3, 7, 1, 5];
var extract = number.shift();
console.log(extract);
console.log(number);
/*
3
[ 7, 1, 5 ]
*/
####最後の要素を切り取って、返す pop()
pop
var number = [3, 7, 1, 5];
var extract = number.shift();
console.log(extract);
console.log(number);
/*
5
[ 3, 7, 1, ]
*/
####要素の追加 push()
push
var number = [3, 7, 1, 5];
var extract = number.push(9);
console.log(number);
/*
[ 3, 7, 1, 5, 9 ]
*/