| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- leetcode
- Writing
- English
- realclass
- 사이드
- Problem Solving
- 만화도
- 프로젝트
- 영어원서읽기
- Daily Challenge
- 괜찮음
- 화상영어
- 리얼 클래스
- 읽기
- 쓰릴오브파이트
- 영어공부
- 미드시청
- 10분
- 매일
- 30분
- FIT XR
- 잡생각
- 월간
- 3줄정리
- 뭐든
- 파비최
- 운동
- 스탭퍼
- 링피트
- 개발자
Archives
- Today
- Total
파비의 매일매일 공부기록
Today's Challenge 본문
https://leetcode.com/problems/longest-path-with-different-adjacent-characters/
Longest Path With Different Adjacent Characters - LeetCode
Longest Path With Different Adjacent Characters - You are given a tree (i.e. a connected, undirected graph that has no cycles) rooted at node 0 consisting of n nodes numbered from 0 to n - 1. The tree is represented by a 0-indexed array parent of size n, w
leetcode.com
최장거리 구하기. 일단 잘 모르겠어서 바로 솔루션행 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ =_=;;
class Solution:
def longestPath(self, parent: List[int], s: str) -> int:
tree = defaultdict(list)
for end, start in enumerate(parent):
tree[start].append(end)
res = 1
def dfs(node):
nonlocal res
mx1 = mx2 = 0
for nei in tree[node]:
neiL = dfs(nei)
if s[nei] != s[node]:
if neiL > mx1:
mx2 = mx1
mx1 = neiL
elif neiL > mx2:
mx2 = neiL
res = max(res, mx1+mx2+1)
return mx1 + 1
dfs(0)
return res반응형
'Problem Solving > LeetCode' 카테고리의 다른 글
| Today's Challenge (0) | 2023.01.15 |
|---|---|
| Today's Challenge (0) | 2023.01.14 |
| Today's Challenge (0) | 2023.01.12 |
| Today's Challenge (0) | 2023.01.11 |
| Today's Challenge (0) | 2023.01.10 |
Comments