[過去ログ] プログラミングのお題スレ Part21 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
3
(1): デフォルトの名無しさん [sage] 2022/11/13(日) 20:02:45.09 ID:9nPd4Cxf(1) AAS

569
(1): デフォルトの名無しさん [sage] 2023/03/14(火) 04:11:08.17 ID:39BjzOmR(1/2) AAS
>>509
509(4): デフォルトの名無しさん [] 2023/03/01(水) 22:37:33.72 ID:np04zI1T(1) AAS
お題
製品タイプ、製品ID、製品色
が入力されます

製品タイプの配列、製品IDの配列、製品色の配列をJSON形式で出力してください

製品タイプの配列の1番目の値は製品IDの配列の1番目と対応する、というように
それぞれの配列の順番は一致するようにしてください

1つの配列の中で製品タイプは重複してはいけません
出力するJSONの数が最小になるようにしてください

入力例
B,02,B
C,04,Y
F,15,R
E,12,C
C,06,G
D,07,B
D,08,B
D,10,M
C,05,C
F,14,G
A,01,Y
D,09,B
B,03,C
G,16,M
E,11,Y
E,13,B

出力例
{"製品タイプ":["A","B","C","D","E","F","G"],"製品ID":["01","02","04","07","12","15","16"],"製品色":["Y","B","Y","B","C","R","M"]}
{"製品タイプ":["B","C","D","E","F"],"製品ID":["03","06","08","11","14"],"製品色":["C","G","B","Y","G"]}
{"製品タイプ":["C","D","E"],"製品ID":["05","10","13"],"製品色":["C","M","B"]}
{"製品タイプ":["D"],"製品ID":["09"],"製品色":["B"]}
Ruby で、

require 'csv'
require 'json'

# 製品タイプの出現回数を数える。初期値は0
prod_type_count = Hash.new( 0 )

# 1行ずつ処理する。Array.new( 1 ) で先頭要素に、nil が入る。
# 蓄積変数・ary のインデックスと、出現回数を同じにする。
# 例えば、ary[ 2 ] には、2つ目のB やC などが入る
result_ary = CSV.foreach( "input.csv" ).
each_with_object( Array.new( 1 ) ) do |row, ary|
plus_1 = prod_type_count[ row[ 0 ] ] + 1
prod_type_count[ row[ 0 ] ] = plus_1

if ary[ plus_1 ] # 存在する
ary[ plus_1 ].push row
else # 存在しない
ary[ plus_1 ] = [ row ]
end
end

# p prod_type_count
#=> { "B"=>2
2(2): デフォルトの名無しさん [] 2022/11/13(日) 19:38:30.54 ID:5vwp7vxt(1) AAS
Twitterリンク:mashino8

小中学校教諭はマクドナルドのアルバイトと同じ最低賃金でかつ資格は不要。
プログラミングを他人に教えるなら、まず自作プログラミングを模範として開陳すること。
形式よりもデザインの独自性を追求する。「車輪の再発明」はいらない。
Twitterリンク:5chan_nel (5ch newer account)
"C"=>3 "F"=>2 "E"=>3 "D"=>4
4(1): デフォルトの名無しさん [] 2022/11/13(日) 20:28:09.14 ID:/iUKLzwe(1) AAS
>>2
日本語でおk
"A"=>1 "G"=>1 }

次へ続く
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.175s