Jae-Kyung Cho LLM Developers who was a Robotics engineer

Baekjoon-14890-경사로

N, L = map(int,input().split())
board = [list(map(int,input().split())) for _ in range(N)]
board_T = [[0]*N for _ in range(N)]
for i in range(N):
    for j in range(N):
        board_T[i][j] = board[j][i]

# 가로 방향
def count_horizontal(board):
    count = 0
    for i in range(N):
        visited = [0]*N
        idx = 1
        h = board[i][0]
        is_possible = True
        while idx < N:
            if board[i][idx] == h:
                pass
            else:
                if board[i][idx] == h-1:
                    if idx+L > N or board[i][idx:idx+L] != [h-1]*L:
                        is_possible = False
                        break
                    else:
                        visited[idx:idx+L] = [1]*L
                        idx += L
                        h -= 1
                        continue
                elif board[i][idx] == h+1:
                    if idx-L < 0 or board[i][idx-L:idx] != [h]*L or visited[idx-L:idx]!=[0]*L:
                        is_possible = False
                        break
                    else:
                        visited[idx-L:idx] = [1]*L
                        h += 1
                else:
                    is_possible = False
                    break
            idx += 1
        if is_possible:
            count += 1
    return count

count = count_horizontal(board)
count += count_horizontal(board_T)
print(count)
Comments