티스토리 뷰

import sys
sys.setrecursionlimit(100000)
input = sys.stdin.readline
n = int(input())
##방문 했는지 안 했는지 구별 
visited = [[False] * n for _ in range(n)] 
##입력값 matrix 만들기
matrix = [list(input().rstrip()) for _ in range(n)]

##dfs 함수 만들기 
def dfs(x, y):
    cur_color = matrix[x][y]
    visited[x][y] = True
    dx = [-1, 1, 0, 0]
    dy = [0, 0, -1, 1]
    
    for i in range(4):
        nx = x + dx[i]
        ny = y + dy[i]
        if 0 <= nx <= n - 1 and 0 <= ny <= n - 1 and visited[nx][ny] == False:
            if cur_color == matrix[nx][ny]:
                dfs(nx, ny)
            
three = 0
##적록색약 아닐 때 
for i in range(n):
    for j in range(n):
        if visited[i][j] == False:
            dfs(i, j)
            three += 1

##적록색약으로 바꾸기
for i in range(n):
    for j in range(n):
        if matrix[i][j] == 'R':
            matrix[i][j] = 'G'

visited = [[False] * n for _ in range(n)] 
two = 0            
##적록색약 일 때 
for i in range(n):
    for j in range(n):
          if visited[i][j] == False:
            dfs(i, j)
            two += 1

print(three, two)

sys.setrecursionlimit(100000)

이 부분 없이 계속 런타임 에러 뜨길래 

구글에 검색 해보니 

저 코드를 재귀 함수 일 때는 필수적으로 넣어야 된다고 합니다

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함