생각을 좀 다르게 가져야하는 문제
창의성이 필요했다.
import sys
N, H = map(int, sys.stdin.readline().split())
up = [0]*(H+1)
down = [0]*(H+1)
# up[i] : 개똥벌레가 i(밑에서부터)로 날때 파괴해야하는 장애물 개수
for i in range(N):
if i%2==0:
up[int(sys.stdin.readline())]+=1
else:
down[int(sys.stdin.readline())]+=1
for i in range(H, 1, -1):
up[i-1]+=up[i]
down[i-1]+=down[i]
obs_min = N
for i in range(1, H+1):
up[i] = up[i] + down[H-i+1]
if obs_min>up[i]:
obs_min = up[i]
print(obs_min, up[1:].count(obs_min))
'알고리즘' 카테고리의 다른 글
[백준] 1826번 연료채우기 (0) | 2023.07.10 |
---|---|
[이분탐색] 백준 3745 오름세(가장 긴 증가하는 부분수열) (0) | 2022.03.28 |
[dijkstra] 백준 11779 최소비용 구하기2(다익스트라 + 경로 노드) (0) | 2022.03.19 |
[dijkstra] 백준 10282 해킹 (0) | 2022.03.17 |
[그래프] 백준 1261 알고스팟 (0) | 2022.03.16 |
댓글