반응형
18310
https://www.acmicpc.net/problem/18310
18310번: 안테나
첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다.
www.acmicpc.net
[정답]
1
2
3
4
5
|
import sys
N = int(sys.stdin.readline())
a = list(map(int, sys.stdin.readline().split()))
a.sort()
print(a[(N-1)//2])
|
cs |
.
.
.
[풀이]
중앙값을 구하는 문제이다. 중앙값 중에서도 최솟값을 구해야 하기 때문에 (N-1)//2를 해준다
처음에는 중앙값이 답인줄 모르고 모든 안테나 에서의 거리 중 최소를 구하는 완전탐색을 했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import sys
N = int(sys.stdin.readline())
a = list(map(int, sys.stdin.readline().split()))
a.sort()
for n in range(N-1, -1, -1):
total = 0
total += a[n]*n - sum(a[:n])
total += sum(a[n:]) - a[n]*(N-1-n)
if n == N-1:
t_result = total
t_result = min(t_result, total)
if t_result == total:
result = a[n]
print(result)
#오답
|
cs |
그 결과 시간초과가 떴다.
고민하면서 풀며 설마... 했는데
답이 중앙값이라 어이가 없었다.
반응형
'백준 문제풀이' 카테고리의 다른 글
[백준 1735] 파이썬 : 분수 합 (0) | 2021.10.11 |
---|---|
[백준 10815] 파이썬 : 숫자 카드 (0) | 2021.10.10 |
[백준 15654] 파이썬 : N과 M (5) (0) | 2021.10.09 |
[백준 5555] 파이썬 : 반지 (0) | 2021.10.08 |
[백준 11652] 파이썬 : 카드 (2) | 2021.10.08 |