개발자 톡
연습문제 톡
효도 여행
max 연산자 시간소요 관련
- 등록일
- 2024-02-23 08:20:02
- 조회수
- 368
- 작성자
- hhs511
mport sys input = sys.stdin.readline sys.setrecursionlimit(5000) n, m = map(int, input().split()) s = input() graph = [ [] for _ in range(5003)] visited = [False] * 5003 d = [[0]*5003 for _ in range(5003)] ans = 0 def dfs(u, level, road) : global ans visited[u] = True for i in range(m+1) : if level == 0 or i ==0 : d[level][i] = 0 elif road[level-1] == s[i-1] : d[level][i] = d[level-1][i-1] + 1 else : d[level][i] = max(d[level][i-1], d[level-1][i]) ans = max(ans, d[level][i]) for nxt in graph[u] : v, c = nxt if visited[v] : continue dfs(v, level+1, road+c) for _ in range(n-1) : u, v, c = input().split() u, v = map(int, [u, v]) graph[u].append((v, c)) graph[v].append((u, c)) dfs(1,0,"") print(ans)
이 코드에서 만약 ans=-1로 초기화 하였을때 1개 예시에서 시간초과가 나던데, 혹시 이유에 대해서 설명해주실분 계실까요?(코드 복기 차원에서..)
상식적으로 ans=0으로 초기화 하는게 맞긴 하지만, 중요하게 생각하지 않아서 -1로 했다가 시간 초과 잡느라 애먹었네요...
#효도_여행
#max연산
#시간초과
#코드복기