💡문제접근

  • 인접한 열에서 |가 연속적으로 나오거나 인접한 행에서 -가 연속적으로 나오는지 체크해서 바닥 장식의 개수를 증가시켜주면 된다.

💡코드(메모리 : 31256KB, 시간 : 48ms)

import sys
input = sys.stdin.readline

N, M = map(int, input().strip().split())
board = []
for i in range(N):
    board.append(list(input()))

cnt = 0
for i in range(N):
	# 앞선 블록의 형태가 "|"인 경우
    pri_block = "|"
    for j in range(M):
    	# 인접한 행의 블록이 "-"가 아니라면 바닥 장식의 개수가 1만큼 증가
        if board[i][j] == "-":
            if board[i][j] != pri_block:
                cnt += 1
        pri_block = board[i][j]

for i in range(M):
    pri_block = "-"
    for j in range(N):
        if board[j][i] == "|":
            if board[j][i] != pri_block:
                cnt += 1
        pri_block = board[j][i]
print(cnt)

💡소요시간 : 17m

0개의 댓글