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

回答編集履歴

7

ちょっと改良しました。。やっぱリストゴミだわ。。orz

2018/02/03 15:15

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -3,8 +3,9 @@
3
3
  最大値まで来たら最大値を更新する仕組みです。うまくパスできました。遅かったですけど…
4
4
 
5
5
  ```python
6
- N = int(input())
6
+ from sys import stdin
7
+
7
- datas = [int(input()) for _ in range(N)]
8
+ N,*datas = [int(i) for i in stdin.readlines()]
8
9
  now_max = max(datas[1:])
9
10
  max_index = datas.index(now_max)
10
11
  diff = now_max - datas[0]

6

ちょっとした編集

2018/02/03 15:15

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -1,4 +1,4 @@
1
- `numpy`等を使うと速いのでしょうけど(そういえば使えないんでしたっけ?)、とりあえずモジュールなしで作ってみました。
1
+ numpy等を使うと速いのでしょうけど(そういえば使えないんでしたっけ?)、とりあえずモジュールなしで作ってみました。
2
2
 
3
3
  最大値まで来たら最大値を更新する仕組みです。うまくパスできました。遅かったですけど…
4
4
 

5

追記

2018/02/03 14:36

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -1,4 +1,4 @@
1
- `numpy`等を使うと速いのでしょうけど、とりあえずモジュールなしで作ってみました。
1
+ `numpy`等を使うと速いのでしょうけど(そういえば使えないんでしたっけ?)、とりあえずモジュールなしで作ってみました。
2
2
 
3
3
  最大値まで来たら最大値を更新する仕組みです。うまくパスできました。遅かったですけど…
4
4
 

4

追記

2018/02/03 14:31

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -29,6 +29,8 @@
29
29
  `diff_indx2 = diff_indx1` … (※)
30
30
 
31
31
  のような気がします。
32
+ (コード全体においてどういう処理に対応しているかは確認していないので、
33
+ こう書きたかったのですか?という意味で書きました。悪しからず。)
32
34
 
33
35
  また、このままだと`diff_indx2`の中身も`i`になってしまうので、
34
36
 

3

追記

2018/02/03 14:24

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  `numpy`等を使うと速いのでしょうけど、とりあえずモジュールなしで作ってみました。
2
2
 
3
- 最大値まで来たら最大値を更新する仕組みです。うまくパスできました。
3
+ 最大値まで来たら最大値を更新する仕組みです。うまくパスできました。遅かったですけど…
4
4
 
5
5
  ```python
6
6
  N = int(input())

2

ちょこっとコード改良

2018/02/03 12:00

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -11,9 +11,8 @@
11
11
 
12
12
  for i in range(1,N-1):
13
13
  if i == max_index:
14
- d = datas[i+1:]
15
- now_max = max(d)
14
+ now_max = max(datas[i+1:])
16
- max_index = d.index(now_max)+i+1
15
+ max_index = datas.index(now_max,i+1)
17
16
  new_diff = now_max - datas[i]
18
17
  if diff < new_diff:
19
18
  diff = new_diff

1

追記

2018/02/03 11:56

投稿

namnium1125
namnium1125

スコア2045

answer CHANGED
@@ -27,10 +27,16 @@
27
27
 
28
28
  ここのところはミスでしょうか?
29
29
 
30
- `diff_indx2 = diff_indx1`
30
+ `diff_indx2 = diff_indx1` … (※)
31
31
 
32
32
  のような気がします。
33
33
 
34
+ また、このままだと`diff_indx2`の中身も`i`になってしまうので、
35
+
36
+ `diff_indx1 = i`
37
+
38
+ の前に(※)を持ってくる必要があると思います。
39
+
34
40
  #
35
41
 
36
42
  Python 3.6.1