:pencil2:코드

import sys, math
# sys.stdin = open("input.txt")
input = sys.stdin.readline


h, w = map(int, input().split())
arr = list(map(int, input().rstrip().split()))
rain = [[0] * w for _ in range(h)]	# 벽의 위치 저장 할 곳

# 벽 위치 저장
for i in range(w):	
    for j in range(arr[i]):
        rain[j][i] = 1

answer = 0

for r in range(h):
    for c in range(w):
        if rain[r][c]:	 # 벽이면 패스
            continue
        left_check = False
        right_check = False

        # left_check
        for i in range(c - 1, -1, -1):
            if rain[r][i] == 1:
                left_check = True
                break
        # right_check
        for i in range(c + 1, w):
            if rain[r][i] == 1:
                right_check = True
                break

        if left_check and right_check:
            answer += 1

print(answer)


:star:풀이

3시간정도 고민끝에 해결한 문제이다 ㅠ

왼쪽 벽과 오른쪽 벽을 체크하는 아이디어는 바로 생각이 났는데 구현이 문제였따..

2차원 배열을 만들어서 빗물이 담길 수 있는 공간을 찾는 방식으로 풀었다.

시간초과가 발생할 줄 알았는데 다행히 통과했다 ㅎㅎ

그럼 다음 스터디 문제를 풀으러…

댓글남기기