본문 바로가기
문제 풀이/소프티어 (Softeer)

[Python] 소프티어 : 이미지 프로세싱

by 희조당 2023. 2. 20.
728x90

https://softeer.ai/practice/info.do?idx=1&eid=627&sw_prbl_sbms_sn=156768 

 

Softeer

연습문제를 담을 Set을 선택해주세요. 취소 확인

softeer.ai


💡 문제 풀이

아주 가벼운 그래프 탐색 문제이다 (BFS)

BFS로 풀었고 DFS도 가능하다.

✔️ 느낀 점

많이 그래프 탐색을 풀어봤다면 어렵지 않은 문제이다.

💻 코드

import sys
input = sys.stdin.readline

moves = [(1,0), (0,1), (-1,0), (0,-1)]

h, w = map(int, input().split())
board = [list(map(int, input().split())) for _ in range(h)]
q = int(input())

for _ in range(q):
    i, j, c = map(int, input().split())

    if board[i-1][j-1] == c:
        continue

    target = board[i-1][j-1]
    q = [[i-1, j-1]]

    while q:
        x, y = q.pop(0)

        if 0 <= x < h and 0 <= y < w and board[x][y] == target:
            board[x][y] = c
            
            for i in range(4):
                q += [x + moves[i][0], y + moves[i][1]],

for row in board:
    print(' '.join(map(str, row)))

댓글