BOJ 14719 빗물

LONGNEW·2020년 12월 26일
0

BOJ

목록 보기
7/333

시간 1초, 메모리 256MB
input :

  • 세로 길이 H, 가로 길이 W (1 <= H, W <= 500)
  • 블록의 높이를 의미 하는 정수 W개 주어짐 (0 <= 정수 <= H)

output :

  • 고이는 빗물의 총량, 고이지 않을 경우 0

현 시점의 인덱스 에서.
[:인덱스]과 [인덱스 + 1:] 둘 중 작은 거 찾음. 작은거 - 현재 인덱스 --> 빗물.
다 합쳐서 마지막에 출력.
0번째 인덱스와, 마지막 인덱스의 경우엔 뭔 짓을 하든 비가 고이지 못하기 때문에.
반복문의 시작은 1에서 len(빌딩) - 1까지 반복한다.

정답 코드 :

H, W = map(int, input().split())
building = list(map(int, input().split()))

rain = 0
for i in range(1, len(building) - 1):
    left = max(building[:i])
    right = max(building[i + 1:])
    if min(left, right) - building[i] > 0:
        rain += min(left, right) - building[i]
print(rain)

0개의 댓글