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

質問編集履歴

2

修正

2018/05/02 15:20

投稿

python3_beginer
python3_beginer

スコア46

title CHANGED
File without changes
body CHANGED
@@ -25,62 +25,14 @@
25
25
  p_N s_N
26
26
  q t
27
27
 
28
- ・1 行目には都市の総数を表す整数 N が与えられます。
29
- ・続く N 行のうち i 行目 (1 ≦ i ≦ N) には i 番目の都市の名前を表す文字列 p_i とその都市の現地時刻の世界標準時からの進み(単位:時)を表す整数 s_i がこの順に半角スペース区切りで与えられます。
30
-   s_i が負である場合はその絶対値ぶんだけ時刻が遅れていることを表します。
31
- ・次の行には投稿を行ったユーザの所在地の都市の名前を表す文字列 q と現地時間での投稿時刻を表す文字列 t がこの順に半角スペース区切りで与えられます。
32
-   t は 0 埋め二桁の数字で時 = hh、分 = mmとし hh:mm 形式で与えられます。
33
- ・入力は合計で N + 2 行であり、入力最終行の最後に改行が 1 つ入ります。
34
28
 
35
29
 
36
- 期待する出力
37
- 都市 q のユーザの時刻 t における投稿に対し、各ユーザの画面に表示される投稿時刻を以下の形式で出力してください。
38
- d_1
39
- d_2
40
- ...
41
- d_N
42
- ・期待する出力は N 行からなります。
43
- ・出力の i 行目 (1 ≦ i ≦ N) に、i 番目の都市に住むユーザが見た時の投稿時刻を表す文字列 d_i を 0 埋め二桁の数字で時 = hh、分 = mmとし hh:mm 形式で出力してください。
44
- ・N 行目の最後に改行を 1 つ入れ、余計な文字、空行を含んではいけません。
45
30
 
46
-
47
- 条件
48
- すべてのテストケースで以下の条件を満たします。
49
-
50
- ・1 ≦ N ≦ 100
51
- ・各 i (1 ≦ i ≦ N) について
52
-  ・p_i は英字小文字で構成される文字列
53
-  ・1 ≦ (p_i の長さ) ≦ 20
54
-  ・-12 ≦ s_i ≦ 14
55
- ・各 i, j (1 ≦ i, j ≦ N) について、i ≠ j のとき p_i ≠ p_j
56
- ・q は p_1, p_2, …, p_N のいずれか 1 つに一致する文字列
57
- ・t は 24 時間制で実際に存在する時刻を表す
58
-
59
-
60
-
61
31
  ```ここに言語を入力
62
32
  コード
63
33
 
64
- '''
65
- 入力例1
66
- 6
67
- tokyo 9
68
- beijing 8
69
- singapore 7
70
- london 0
71
- newyork -5
72
- osaka 9
73
- singapore 19:38
74
34
 
75
- 出力例1
76
- 21:38
77
- 20:38
78
- 19:38
79
- 12:38
80
- 07:38
81
- 21:38
82
35
  '''
83
- '''
84
36
  入力例2
85
37
  27
86
38
  howland -12

1

#追記 誤り訂正

2018/05/02 15:20

投稿

python3_beginer
python3_beginer

スコア46

title CHANGED
File without changes
body CHANGED
@@ -164,8 +164,6 @@
164
164
  if place == data[x][0]:
165
165
  place_diff = data[x][1]
166
166
  #print(place_diff)
167
-
168
-
169
167
  #投稿された国の時刻とユーザーの居住国の時差を計算
170
168
  for x in range(M):
171
169
  diff = data[x][1] - (place_diff)
@@ -187,4 +185,42 @@
187
185
  #質問
188
186
 
189
187
  期待値を出力できましたが、皆様の率直な意見を頂戴したいです。
190
- 読みづらいや、わかりづらいなど、どんな意見でもいいので更なる成長のためにアドバイスいただきたいです。
188
+ 読みづらいや、わかりづらいなど、どんな意見でもいいので更なる成長のためにアドバイスいただきたいです。
189
+
190
+
191
+ #追記 
192
+
193
+ 皆さま貴重なご意見ありがとうございます。
194
+ その中で、hayataka様からオリジナルコードが誤っているとご指摘を受けました。
195
+ そのため、皆さまのアドバイスを参照にコードを再編集致しました。
196
+
197
+ ただ、ジャッジ結果によると、9/10 とういパーフエクトなロジックにはなりませんでした。
198
+ 現状、理由を解明することができず、解決方法に正しいコードを載せるまで至っておりません。
199
+
200
+ 前回の内容で、誤った内容を展開してしまし申し訳ございません。
201
+ 今後、内容を精査し解決方法を更新できるよう努力致します。
202
+ 取り急ぎ失礼致します。
203
+
204
+
205
+ ```ここに言語を入力
206
+ コード
207
+
208
+ from collections import OrderedDict
209
+
210
+ n = int(input())
211
+
212
+ timezone_table = OrderedDict()
213
+ for _ in range(n):
214
+ city, diff = input().split()
215
+ timezone_table[city] = int(diff)
216
+
217
+ base_city, base_time = input().split()
218
+ base_hour, base_minute = map(int, base_time.split(':'))
219
+
220
+ standard_hour = (base_hour - timezone_table[base_city]) % 24
221
+ for diff in timezone_table.values():
222
+ ans_hour = (standard_hour + diff) % 24
223
+ print("{0:02d}:{1}".format(ans_hour, base_minute))
224
+
225
+
226
+ ```