문제사항 : dfs를 돌리는 과정에서 전역변수 flag 값으로 targetSum 합계에 해당하는 값 나왔을 때 전역변수 flag = True 값으로 바꿔서 정답 판별하려고 하였는데, 계속 코드 제출만 하면 Error가 발생함. (해당 TC로 run code 눌렀을 때는 OK 뜨는데)
위 문제때문에 엄청 삽질함
문제해결 : hasPathSum() 메서드 안에 Solution.flag = False 로 전역변수 flag값 False로 초기화하는 부분 넣으니 해결됨
채점시스템이 어떻게 돌아가는지 모르겠는데, 전역변수는 초기화하지 않아서 flag에 True 값으로 저장된 것이 False로 초기화 되지 않아서 발생한 문제인 것 같음
class Solution:
flag = False
def hasPathSum(self, root: Optional[TreeNode], targetSum: int) -> bool:
Solution.flag = False
if root == None:
return False
return self.dfs(root, targetSum, 0)
def dfs(self, root, targetSum, count):
count += root.val
if count == targetSum and root.left ==None and root.right == None:
Solution.flag = True
if root.left != None:
self.dfs(root.left, targetSum, count)
if root.right != None:
self.dfs(root.right, targetSum, count)
return Solution.flag
'이것저것' 카테고리의 다른 글
시스템 환경변수 cmd에서 출력하는 방법 (0) | 2022.05.14 |
---|---|
[LeetCode] 200. Number of Islands (0) | 2022.03.18 |
leetcode 139. Word Break (0) | 2022.03.09 |
텐서플로우 자주쓰는 수학함수 (0) | 2022.03.01 |
관심 가져야 할 테마 (0) | 2022.02.28 |
댓글