Baek_14719

원성혁·2022년 10월 6일
0

algorithm

목록 보기
5/21
post-thumbnail

어제 두번째 스터디에서 실버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 위치이다.

이렇게 해주니 다행히 예외 없이 풀렸다!
삼전 코테 화이팅!

profile
AI개발자를 향해 전진중

0개의 댓글