https://www.acmicpc.net/problem/2108
내 풀이:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
num = int(input())
result = [0] * 8001
for i in range(num):
n = int(input())
result[n+4000] += 1
sum = 0
for i in range(8001):
sum += result[i] * (i-4000)
if (sum / num) % 1 >= 0.5:
print(sum//num+1)
else:
print(sum//num)
m=0
for i in range(8001):
m += result[i]
if m >= (num//2+1):
print (i-4000)
break
if result.count(max(result)) != 1:
t=result.index(max(result))
result2 = result[t+1:]
print(result2.index(max(result))+t-3999)
else:
print(result.index(max(result))-4000)
for i in range(8001):
if result[i] != 0:
min_num = i-4000
break
for i in range(8000, -1, -1):
if result[i] != 0:
max_num = i-4000
break
print(max_num - min_num)
|
시간초과
이 문제의 경우 입력받아야 하는 값이 많기 때문에 현재까지는 import sys하여 readline()을 이용하는 것 말고는 방법을 모르겠다. 모듈을 호출하여 문제를 푸는 것은 지양하고 있기 때문에 추후에 다른 풀이 방법을 고안해야 할 것 같다.
파이썬으로 풀어보는 백준 2580번: 스도쿠 (0) | 2020.01.20 |
---|---|
[SW Expert Academy] 5550. 나는 개구리로소이다 (0) | 2020.01.18 |
파이썬으로 풀어보는 백준 9663번: N-Queen (0) | 2020.01.15 |
파이썬으로 풀어보는 백준 15649번 N과 M (0) | 2020.01.15 |
파이썬으로 풀어보는 백준 11650번, 11651번: 좌표 정렬하기 (0) | 2020.01.15 |
댓글 영역