第83回【JavaScript】文字列の配列
現在取り組んでいるのは、paiza ラーニング問題集「データセット選択メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
JavaScript をゼロから勉強してみよう、のコーナー 83 回目です。
出社して最初に Slack とメールチェックをします。そして、コーヒーを入れる。始業前にここまでを終わらせるのは、過去の社畜時代が抜けきっていないからなんでしょうか。みんな、ギリギリに出社してくるので、大丈夫か、って不安になってしまうのだけれど。
それでは、今日も頑張ってみようと思います。
文字列の配列 (paizaランク C 相当)
縦 H マス、横 W マスの H × W マスからなる迷路 S があります。上から i 行目、左から j 列目のマス は S_ij とあらわされ、 S_ij が「#」のとき壁であり、「.」のとき道です。整数 r、c が与えられるので、S_rc が壁かどうか判定してください。
入力される値
H W r c
S_1
S_2
...
S_H
入力値最終行の末尾に改行が1つ入ります。
期待する出力
S_rc が壁なら「Yes」を、壁ではないなら「No」と出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ 1 ≦ H, W ≦ 100
・ 1 ≦ r ≦ H
・ 1 ≦ c ≦ W
・ S_i は「#」または「.」からなる W 文字の文字列
入力例
3 4 1 2
..#.
#.##
....
出力例
No
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 [h,w,r,c] = lines[0].split(/\s/).map(Number);
const s = [];
for (let i = 1; i <= h; i++) {
s.push(lines[i]);
}
if (s[r-1][c-1] == '#') {
console.log('Yes');
} else {
console.log('No');
}
});
Python
H,W,r,c = map(int,input().split())
S = [input() for _ in range(H)]
if S[r-1][c-1] == '#':
print('Yes')
else:
print('No')
最後に
ここまで挑戦した問題では、YES NO が大文字だったのに、ここにきて Yes No となるとは。全然関係のないこういうところで躓きました。
文字列を配列風のオブジェクトとして扱い、数値インデックスに対応させることが出来る。なんだかとても便利です。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません