第44回【JavaScript】辞書順に出力 1、辞書順に出力 2
現在取り組んでいるのは、paiza ラーニング問題集「配列メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
JavaScript をゼロから勉強してみよう、のコーナー 44 回目です。
先日、下書き保存したらここが消えた、と書きました。引き続き、同じ挙動が発生します。インストールされているものは常に最新化しているのですが、その弊害かもしれません。最新化しておかないと攻撃の対象となり得る、最新化するとバグが発生する可能性がある、よくある板挟みですね。
それでは、今日も頑張ってみようと思います。
辞書順に出力 1 (paizaランク D 相当)
3 つの文字列
zaipa izapa paiza
があります。辞書順に並べ替え、改行区切りで出力してください。
この三つの文字列を配列に格納し、その配列を並び替える操作を考えて解いてみましょう。
入力される値
入力は与えられません。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
辞書順に並べ替え、改行区切りで出力してください。
izapa
paiza
zaipa
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
入力は与えられません。
これは簡単。書いてある通りのことをやってみる。
JavaScript
L = ["zaipa", "izapa", "paiza"];
L.sort();
for (let i = 0; i < L.length; i++) {
console.log(L[i]);
}
Python
L = ["zaipa", "izapa", "paiza"]
L.sort()
for li in L:
print(li)
辞書順に出力 2 (paizaランク D 相当)
5 つの文字列 s_1, s_2, …, s_5 が半角スペース区切りで与えられます。
5 つの文字列を辞書順に並べ替え、改行区切りで出力してください。
入力される値
s_1 s_2 ... s_5
5 つの文字列 s_1, s_2, …, s_5 が半角スペース区切りで与えられます。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
5 つの文字列を辞書順に並べ替え、改行区切りで出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
* s_i (1 ≤ i ≤ 5) は数字または大文字・小文字のアルファベットからなる長さ 1 以上 10 以下の文字列
入力例
e d a c b
出力例
a
b
c
d
e
数が決まっているので、前問とそう変わらない、かな。
JavaScript
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', () => {
const L = lines[0].split(/\s/);
L.sort();
for (let i = 0; i < 5; i++) {
console.log(L[i]);
}
});
Python
L = input().split()
L.sort()
for li in L:
print(li)
最後に
あっ、LeoSaki(旦那)は、常に最新化信者なので、yum update やら dnf update やら大好きです。ごくごく稀に起こるバグで泣きを見たことも結構ありますけれど。
JavaScript の sort() は基本的に辞書順なんですね。以前、数値としてソートする場合は、コールバック関数が必要だったので、なんとなく不思議な感じです。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません