백준 #14719 빗물
코드
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)
풀이
3시간정도 고민끝에 해결한 문제이다 ㅠ
왼쪽 벽과 오른쪽 벽을 체크하는 아이디어는 바로 생각이 났는데 구현이 문제였따..
2차원 배열을 만들어서 빗물이 담길 수 있는 공간을 찾는 방식으로 풀었다.
시간초과가 발생할 줄 알았는데 다행히 통과했다 ㅎㅎ
그럼 다음 스터디 문제를 풀으러…
댓글남기기