🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

776閲覧

【Ruby】配列の要素と指定した値が一致するindex番号を取得する方法

taka10taka12

総合スコア7

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/03/21 10:11

編集2021/03/21 10:14

前提・実現したいこと

AtCoder Beginner Contest 113 B - Place の問題を解いていたのですが、
以下の操作を求められました。
(操作)
array = [34, 76, 88, …, 28, 55]
のような順不同な配列の中で最小値となるindex番号を出力しなさい。

自分なりに解答を作成してACは頂いたのですが、もっと簡単に出力できる方法があればご教示願いたいです。

AtCoder Beginner Contest 113 B-Placeへのリンク

該当のソースコード

Ruby

1N = gets.chomp.to_i 2T, A = gets.chomp.split(" ").map(&:to_f) 3heights = gets.chomp.split(" ").map(&:to_f) 4 5temps = [] #平均気温との差を入れるための配列作成 6def ave_temp_difference(t) #平均気温との差を計算する関数 7 (A - (T - t * 0.006)).abs 8end 9 10heights.each do |height| #全要素で平均気温との差を計算し、配列に収納 11 temps << ave_temp_difference(height) 12end 13 14ans = 0 #合致するindex番号を探索する準備 15temps.each do |temp| #合致するindex番号を探索する処理 16 ans += 1 17 if temp == temps.min 18 break 19 end 20end 21puts ans #合致したindex番号を表示する

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

temps.index(temps.min)

heights.each do |height| #全要素で平均気温との差を計算し、配列に収納 temps << ave_temp_difference(height) end


temps = heights.map{|height| ave_temp_difference(height) }

投稿2021/03/21 10:41

編集2021/03/21 10:43
winterboum

総合スコア23567

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taka10taka12

2021/03/21 10:51

winterboumさん 質問への解答ありがとうございます! 配列.index(指定する値) でindex番号が取得できるんですね!! 自分の勉強不足でした。 他にも遠回しな表記を訂正してくださり、ありがとうございます。 シンプルなコードに近づけるよう心がけます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問