Softeer [21년 재직자 대회 예선] 이미지 프로세싱 (난이도 3)

Yibangwon·2022년 10월 1일
0

알고리즘 문제풀이

목록 보기
59/60

정답 코드

import sys

h, w = map(int, sys.stdin.readline().split())
maps = []
for i in range(h):
    maps.append(list(map(int, sys.stdin.readline().split())))
q = int(sys.stdin.readline())
    
for o in range(q):
    i, j, c = map(int, sys.stdin.readline().split())
    original = maps[i-1][j-1]
    maps[i-1][j-1] = c
    queue = [[i-1, j-1]]
    while len(queue) > 0:
        current = queue[0]
        del queue[0]

        dr = [1, -1, 0, 0]
        dc = [0, 0, 1, -1]
        for k in range(4):
            nr = current[0] + dr[k]
            nc = current[1] + dc[k]
            if 0 <= nr < h and 0 <= nc < w and maps[nr][nc] == original:
                if maps[nr][nc] != c:
                    maps[nr][nc] = c
                    queue.append([nr, nc])
                
for i in range(h):
    for j in range(w):
        print(maps[i][j], end=' ')
    print()
profile
I Don’t Hope. Just Do.

0개의 댓글