jaascriptの学習としてatcoderをjavascriptで可能な限り解く。javascriptが一番とっつきやすい。
##ABC154A - Remaining Balls
###問題
###解答
"use strict"; //標準入力。
const main = arg => {
const input = arg.trim().split("\n"); //trimで前後の空白を削除し、split関数で\n指定して改行する。
const strngs = input[0].split(" "); //配列inputの0番目の値をsplit関数で半角を指定して改行する。
const A = Math.floor(input[1].split(" ")[0], 10); //配列inputの1番目の0番目の値をsplit関数で半角を指定して改行し、Math.floor関数で問題のルールである10以下であることを指定する。
const B = Math.floor(input[1].split(" ")[1], 10); //配列inputの1番目の1番目の値をsplit関数で半角を指定して改行し、Math.floor関数で問題のルールである10以下であることを指定する。
const U = input[2]; //配列inputの2番目の値。
if ( U === strngs[0]) { //割愛
console.log((A - 1), B);
} else {
console.log(A, (B - 1));
}
}
main(require('fs').readFileSync('/dev/stdin', 'utf8')); //標準入力。
コメントアウトすると理解できるが、いざ書けとなると書けない。
###出てきた関数
####trim()
前後の空白を削除する。
####split("\n");
\nは改行を表す。
####Math.floor();
与えられた数値以下の最大の整数を返す。
##ABC154B - I miss you...
###問題
###解答
"use strict";
const main = arg => {
const inputLength = arg.trim().length; // 入力された文字列のの前後の空白を削除し、長さをlengthで取得する。
const letter = "x"; //カンマは文字列と認識するために必要。
const answer = letter.repeat(inputLength).trim().replace(/\r?\n/g, ''); //letterに格納された文字列xをrepeat関数でinputLength分繰り返し、trimで前後の空白を切り取り、正規表現を含んだreplace(/\r?\n/g,'')で文字列の改行を削除できる。
console.log(answer);
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));
標準入力の文字列の長さを取得し、その値分repeat関数を使い文字列を表示するという発想ができなかった。
文字列を1文字ずつ分解して配列にし、配列の値それぞれをxに変更し、配列を一つの値にすると考えたができなかった。
##ABC154C - Distinct or Not
##ABC154D - Dice in Line