어제 두번째 스터디에서 실버1 스택 문제에서 좌절했다....
오늘 마음 다잡고 새로운 문제를 풀었다
시뮬레이션 문제이고 결과는 성공!!!
시뮬레이션은 한층한층 구현에 신경쓰면 풀리는 문제인것 같다.
삼전에 한걸음 다가간것이가?
import sys
input = sys.stdin.readline
h,w = map(int,input().split())
matrix = [[0 for i in range(w)] for j in range(h)]
rain = list(map(int,input().split()))
for i,val in enumerate(rain):
for j in range(val):
matrix[j][i] = 1
ans = 0
for i,mat in enumerate(matrix):
j = 0
while j < w:
if matrix[i][j] == 1:
low = j
high = j+1
while high<w:
if matrix[i][high] == 1:
break
high+=1
if high < w:
ans += high-low-1
j = high
else:
j+=1
print(ans)
2차원 배열로 만들어준뒤 1층부터 차근차근 살펴봤다.
처음 1이 등장할때 low이고 그 뒤 1이 등장하면 high다.
high-low-1 이란 식으로 빈칸을 계산해준다.
새로운 low는 high 위치이다.
이렇게 해주니 다행히 예외 없이 풀렸다!
삼전 코테 화이팅!