回答編集履歴

2

微修正

2018/04/05 01:00

投稿

otn
otn

スコア84572

test CHANGED
@@ -22,7 +22,9 @@
22
22
 
23
23
 
24
24
 
25
+ #追記
26
+
25
- #エラー処理を忘れました
27
+ エラー処理を忘れました
26
28
 
27
29
  ```Ruby
28
30
 

1

追記

2018/04/05 00:59

投稿

otn
otn

スコア84572

test CHANGED
@@ -19,3 +19,37 @@
19
19
 
20
20
 
21
21
  おそらく大丈夫だと思いますが、もし`request`だけにあるキーがあれば、そのデータも結果に含まれます。そういう可能性があるなら、`merge`の前にチェックしてください。
22
+
23
+
24
+
25
+ #エラー処理を忘れました
26
+
27
+ ```Ruby
28
+
29
+ request = {"gold"=>"1", "silver"=>"3"} #必要メダル
30
+
31
+ possession = {"gold"=>"5", "silver"=>"15", "bronze"=>"30"} #所持メダル
32
+
33
+
34
+
35
+ possession = possession.merge(request) do |key, pos, req|
36
+
37
+ rest = pos.to_i-req.to_i
38
+
39
+ if rest < 0
40
+
41
+ エラー処理
42
+
43
+ end
44
+
45
+ rest.to_s
46
+
47
+ end
48
+
49
+
50
+
51
+ p possession
52
+
53
+ ```
54
+
55
+ あと、「配列間」じゃなくて「ハッシュ間」ですね。