[알고리즘] 백준 1987 알파벳

CHOI IN HO·2024년 2월 13일
0

코딩테스트

목록 보기
51/74

풀이

파이썬에서 알파벳에 관련된 visited처리시에는 ord()를 적극 이용해야한다.

import sys
r,c = map(int, input().split())

lst = [list(map(str, sys.stdin.readline())) for _ in range(r)]
visited = [0] * 128
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
visited[ord(lst[0][0])] = 1
mx = 0
def dfs(x,y, count):
    global mx
    mx = max(count, mx)

    for i in range(4):
        nx = x+dx[i]
        ny = y+dy[i]
        if nx < 0 or ny < 0 or nx >= r or ny >= c:
            continue
        if visited[ord(lst[nx][ny])] == 0:
            visited[ord(lst[nx][ny])] = 1
            dfs(nx,ny, count+1)
            visited[ord(lst[nx][ny])] = 0

dfs(0,0, 1)
print(mx)

profile
개발자기 되기 위해선 무엇이든!

0개의 댓글