1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[JavaScript] Cheat Sheet for Competitive Programming [AtCoder]

Last updated at Posted at 2019-07-02

完全に自分用のチートシートです。
これを読み通せば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 ]
*/
1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?