teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

解決しました。

2021/02/05 18:46

投稿

anmoanmo
anmoanmo

スコア2

title CHANGED
File without changes
body CHANGED
@@ -70,6 +70,8 @@
70
70
 
71
71
  ご回答よろしくお願いいたします。
72
72
 
73
+ アドバイスをいただき解決しました。
74
+
73
75
  ```アドバイスをいただき解決したコード
74
76
  let n = Int(readLine()!)!
75
77
 

5

解決しました。

2021/02/05 18:46

投稿

anmoanmo
anmoanmo

スコア2

title CHANGED
File without changes
body CHANGED
@@ -68,4 +68,45 @@
68
68
  としてもうまくいきませんでした。
69
69
 
70
70
 
71
- ご回答よろしくお願いいたします。
71
+ ご回答よろしくお願いいたします。
72
+
73
+ ```アドバイスをいただき解決したコード
74
+ let n = Int(readLine()!)!
75
+
76
+ var hb = [(String,String)]()//ユーザー名と血液型をタプルで格納する配列
77
+ var bf = [(String,String)]()//血液型と占い結果をタプルで格納する配列
78
+
79
+ for _ in 0..<n{
80
+
81
+ let tmp = readLine()!.split(separator: " ")
82
+
83
+ let user = String(tmp[0])
84
+ let blood = String(tmp[1])
85
+
86
+ hb.append((user,blood))
87
+
88
+ }
89
+
90
+ let m = Int(readLine()!)!
91
+
92
+ for _ in 0..<m{
93
+
94
+ let tmp = readLine()!.split(separator: " ")
95
+
96
+ let blood = String(tmp[0])
97
+ let fortune = String(tmp[1])
98
+
99
+ bf.append((blood,fortune))
100
+
101
+ }
102
+
103
+
104
+ for i in hb{
105
+ for ii in bf{
106
+ if i.1 == ii.0{
107
+ print("(i.0) (ii.1)")
108
+ }
109
+ }
110
+ }
111
+
112
+ ```

4

コードの編集をしました

2021/02/05 18:45

投稿

anmoanmo
anmoanmo

スコア2

title CHANGED
File without changes
body CHANGED
@@ -31,6 +31,7 @@
31
31
  kai yellow
32
32
  このような出力結果にしたいです。
33
33
  ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
34
+ 途中経過
34
35
  ```swift
35
36
   
36
37
  let n = Int(readLine()!)!

3

コードの編集をしました

2021/02/05 15:52

投稿

anmoanmo
anmoanmo

スコア2

title CHANGED
File without changes
body CHANGED
@@ -32,8 +32,7 @@
32
32
  このような出力結果にしたいです。
33
33
  ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
34
34
  ```swift
35
- コード
35
+  
36
- ```途中経過 
37
36
  let n = Int(readLine()!)!
38
37
  var users : [String:String] = [:]
39
38
 
@@ -62,6 +61,7 @@
62
61
  }
63
62
  }
64
63
  }
64
+ ```
65
65
  なんとかペアで出力することはできましたが、辞書型なので順番通りに出力ができずに悩んでいます。
66
66
  KeyValuePairs と定義すれば順番が保持されると分かったのですが、var users : KeyValuePairs = [:]
67
67
  としてもうまくいきませんでした。

2

コードの編集

2021/02/05 15:51

投稿

anmoanmo
anmoanmo

スコア2

title CHANGED
File without changes
body CHANGED
@@ -31,35 +31,37 @@
31
31
  kai yellow
32
32
  このような出力結果にしたいです。
33
33
  ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
34
+ ```swift
35
+ コード
34
- 途中経過 
36
+ ```途中経過 
35
37
  let n = Int(readLine()!)!
36
38
  var users : [String:String] = [:]
37
39
 
38
40
  for _ in 0..<n{
39
- let tmp = readLine()!.split(separator: " ")
41
+ let tmp = readLine()!.split(separator: " ")
40
- let user = String(tmp[0])
42
+ let user = String(tmp[0])
41
- let blood = String(tmp[1])
43
+ let blood = String(tmp[1])
42
- users[user] = blood
44
+ users[user] = blood
43
45
  }
44
46
 
45
47
  let m = Int(readLine()!)!
46
48
  var fortunes : [String:String] = [:]
47
49
 
48
50
  for _ in 0..<m{
49
- let tmp = readLine()!.split(separator: " ")
51
+ let tmp = readLine()!.split(separator: " ")
50
- let blood = String(tmp[0])
52
+ let blood = String(tmp[0])
51
- let fortune = String(tmp[1])
53
+ let fortune = String(tmp[1])
52
- fortunes[blood] = fortune
54
+ fortunes[blood] = fortune
53
55
  }
54
56
 
55
57
  for (user,user_blood) in users{
56
- for (blood,fortune) in fortunes{
58
+ for (blood,fortune) in fortunes{
57
- if user_blood == blood{
59
+ if user_blood == blood{
58
- print("(user) (fortune)")
60
+ print("(user) (fortune)")
59
- break
61
+ break
60
- }
61
- }
62
62
  }
63
+ }
64
+ }
63
65
  なんとかペアで出力することはできましたが、辞書型なので順番通りに出力ができずに悩んでいます。
64
66
  KeyValuePairs と定義すれば順番が保持されると分かったのですが、var users : KeyValuePairs = [:]
65
67
  としてもうまくいきませんでした。

1

自分のコードを載せました。

2021/02/05 15:50

投稿

anmoanmo
anmoanmo

スコア2

title CHANGED
@@ -1,1 +1,1 @@
1
- swift ラッキーカラー占い結果出力 (初心者)
1
+ swift 辞書型 対応する値があれば、順序を保持して出力する方法
body CHANGED
@@ -31,5 +31,38 @@
31
31
  kai yellow
32
32
  このような出力結果にしたいです。
33
33
  ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
34
+ 途中経過 
35
+ let n = Int(readLine()!)!
36
+ var users : [String:String] = [:]
34
37
 
38
+ for _ in 0..<n{
39
+ let tmp = readLine()!.split(separator: " ")
40
+ let user = String(tmp[0])
41
+ let blood = String(tmp[1])
42
+ users[user] = blood
43
+ }
44
+
45
+ let m = Int(readLine()!)!
46
+ var fortunes : [String:String] = [:]
47
+
48
+ for _ in 0..<m{
49
+ let tmp = readLine()!.split(separator: " ")
50
+ let blood = String(tmp[0])
51
+ let fortune = String(tmp[1])
52
+ fortunes[blood] = fortune
53
+ }
54
+
55
+ for (user,user_blood) in users{
56
+ for (blood,fortune) in fortunes{
57
+ if user_blood == blood{
58
+ print("(user) (fortune)")
59
+ break
60
+ }
61
+ }
62
+ }
63
+ なんとかペアで出力することはできましたが、辞書型なので順番通りに出力ができずに悩んでいます。
64
+ KeyValuePairs と定義すれば順番が保持されると分かったのですが、var users : KeyValuePairs = [:]
65
+ としてもうまくいきませんでした。
66
+
67
+
35
68
  ご回答よろしくお願いいたします。