0
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?

【解説付き】複数回のランダムアクセス(ランクD】 Ruby

Last updated at Posted at 2024-01-24

初めに

paizaのレベルアップ問題集を解いていたのですが、これだけ問題の意味がわからなかった、、
Cランクの問題とか普通に解けたのに、、
このブログを読んでようやく意味が分かりました。
わかってしまえば全然難しいものではありません。
ただ問題文が少し抽象的且つRubyの解説が載っていなかったので、同じように躓いた初学者のためにRubyでの解説を残しておきます。

複数回のランダムアクセス (paizaランク D 相当)

解説

問題の目的を簡単に要約すると、

2列目で与えられた数値列から4列目で与えられた数値列の各数値番目の要素を取り出してくださいねってことです。

変に要素数(1列目と3列目)とか与えられているせいで混乱しますが、これは考慮しなくても良いです。

例えば入力例1の2列目では

    10 20 30 40 50

が与えられているので、
ここから4列目で与えられた2 4 1つまり2番目(20)と4番目(40)と1番目(10)の要素を取り出してねってことになります。

複数要素の取り扱いは配列を使えばいいだけなので簡単だと思いますが、ここで1つ注意点として、配列は0番目から始まるということです。
その点を考慮していただければ後は回答できるかと思います。

回答の手順
① 各標準入力を受け取る
② 2列目、4列目を配列にする
③ 配列の各要素を数値に変換する
④ 4列目のそれぞれの要素を取り出し、−1する(配列のインデックスに変換する)
⑤ 配列化した2列目から④のインデックス番目の値を取り出し出力する

解答例

一応私が書いたコードを解答例として乗っけておきます。
paizaでは100点でしたが、初学者が書いたものですので、参考程度にご覧ください。

input_line1 = gets.chomp.to_i
input_line2 = gets.chomp.split(" ").map{|n| n.to_i}
input_line3 = gets.chomp.to_i
input_line4 = gets.chomp.split(" ").map{|n| n.to_i}
input_line4.each do |n|
    puts input_line2[n-1]
end

※何か間違いがあったらご指摘いただけると幸いです。

0
0
0

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
0
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?