第91回【JavaScript】半角スペース区切りでの出力、改行区切りでの出力、標準入出力
現在取り組んでいるのは、paiza ラーニング問題集「Cランクレベルアップメニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
JavaScript をゼロから勉強してみよう、のコーナー 91 回目です。
ルナちゃんは、自分で布団に入ります。ちょっとの隙間に頭を捻じ込んで器用に入ります。レオくんは、布団に入れてくれ、とアピールします。起きるまで肩の辺りをつついてきます。どっちも可愛いですが、結局起こされるのは変わりません。
それでは、今日も頑張ってみようと思います。
半角スペース区切りでの出力 (paizaランク D 相当)
整数 n が与えられるので、n 回、半角スペース区切りで paiza
と出力してください。
入力される値
n
1行目に整数nが与えられます。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
paiza と n 回、半角スペース区切りで出力してください。最後の paiza の後には半角スペースは入れず、改行を入れ、余計な文字、空行を含んではいけません。
paiza paiza ... paiza
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ n ≦ 50
入力例
2
出力例
paiza paiza
末尾に半角スペースを入れないようにする。よくあるパターンです。ちょっと天邪鬼に解いてみる。
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 n = Number(lines[0]);
const S = Array(n).fill('paiza');
console.log(S.join(' '));
});
Python
N = int(input())
S = ['paiza'] * N
print(' '.join(S))
改行区切りでの出力 (paizaランク D 相当)
整数 n が与えられ、その後に n 個の整数 a_1, …, a_n が半角スペース区切りで与えられるので、a_1, …, a_n をそのままの順番で改行区切りで出力してください。
入力される値
n
a_1 a_2 ... a_n
1 行目には整数 n が与えられ、2 行目には半角スペース区切りの n 個の数 a_1, …, a_n が 1 行で与えられます。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
a_1, …, a_n をそのままの順番で改行区切りで出力してください。
a_1
...
a_n
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ n ≦ 50
・各 a_i(1 ≦ i ≦ n)について、1 ≦ a_i ≦ 50
入力例
2
1 5
出力例
1
5
今度は・・・縦方向だ!
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 n = Number(lines[0]);
const A = lines[1].split(/\s/);
for (let i = 0; i < n; i++) {
console.log(A[i]);
}
});
Python
N = int(input())
A = [int(x) for x in input().split()]
for a in A:
print(a)
標準入出力 (paizaランク C 相当)
毎年 5 月 1 日に、自分が運営している会社の社員一覧表を作成しています。表は年度ごとに更新され、社員の名前と年齢が載っています。
ところで、会社のメンバーは昨年度から全く変わらず、社員の誕生日は全員 7 月 7 日だったので、前年度の一覧表の年齢欄をそれぞれ +1 するだけで今年度の表が作れることにパイザ君は気づきました。
昨年度の一覧表が与えられるので、今年度の一覧表を出力してください。
入力される値
N
s_1 a_1
...
s_N a_N
1 行目には社員の数を表す整数 N が与えられ、2 行目 〜 (N + 1) 行目の各行では、社員の名前を表す文字列 s_i とその社員の昨年度の年齢を表す整数 a_i が半角スペース区切りで与えられます(1 ≤ i ≤ N)。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
入力された通りの順番で、社員 s_i の名前と、その社員の今年度の年齢を半角スペース区切りでN行出力してください。
s_1 (a_1 + 1)
...
s_N (a_N + 1)
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≤ N ≤ 50
・s_i(1 ≤ i ≤ N)は 1 文字以上 10 文字以下の文字列
・s_i(1 ≤ i ≤ N)の各文字は英小文字または英大文字または数字
・18 ≤ a_i ≤ 120(1 ≤ i ≤ N)
入力例
1
Yamada 30
出力例
Yamada 31
全員が同じ誕生日だわ、120 歳の社員もいるらしいし、凄い会社ですね。
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 n = Number(lines[0]);
for (let i = 1; i <= n; i++) {
const [s,a] = lines[i].split(/\s/);
console.log(s,Number(a) + 1);
}
});
Python
N = int(input())
for _ in range(N):
s,a = input().split()
print(s,int(a)+1)
最後に
ここまでの模範解答を見ると、自分が書いているコードの方が効率的で綺麗に感じる。正式な書き方、というのがよく理解出来ていないから、本当はダメなのかもしれないけれど。
const による宣言が、他の言語に比べると分かりづらくて苦手です。もちろん、const で宣言することで、変数が書き換えられたり名前が重複したりしないので、こっちの方が良さそうですが。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません