[LeetCode] 1800. Maximum Ascending Subarray Sum (Python)
·
코딩 테스트
ProblemSolutionsliding window이전 문제와 유사하게 sub array 중 오름차순이면서 총 원소합의 최대값을 구하는 문제.num array 가 100 이하라서 2중 포문을 사용해되지만 최대한 fot문을 1번만 사용하려고했다. 강력한 힌트는 The end of each ascending subarray will be the start of the nextsubarray 만들고 체크한 마지막 인덱스가 다음 순회 인덱스의 첫번째 인덱스가 된다. 아래 코드에서 idx 가 그 역할. 아래는 더 깔끔한 코드가있어서 가져와봤다.아예 처음부터 처음 0번째 값을 넣은 리스트를 선언 후 증가하는 값이 나올때마다 리스트에 추가 (cur list)작아지는 숫자가 나오면 max 값 구하고 다시 cur li..
[LeetCode] 637. Average of Levels in Binary Tree (Python)
·
코딩 테스트
Problem SolutiondequedefaultdictBinary Tree 문제로 같은 레벨의 노드의 합 평균값을 구하는 문제.값은 float 으로 반환해야된다.left/right node를 순회하면서 defaultidct에 각 레벨별 노드값을 저장한다.마지막에 defaultdict 에 저장된 데이터를 for문을 돌면서 합계와 평균값을 구한다. 아래는 다른 사람 풀이 중 하나def averageOfLevels(self, root: Optional[TreeNode]) -> List[float]: queue = [root] ans = [] while queue: no_nodes_in_curr_level = len(queue) s..
[LeetCode] 3151. Special array 1 (Python)
·
코딩 테스트
ProblemSolutionarray가 주어지면 양 옆 숫자로 두 쌍을 만들었을 때 differenct parity 가 만들어지는지 확인하는 문제우선 len(array) == 1 이면 무조건 True return그 이후에는 둘다 홀수 or 짝수인지 확인 후 맞으면 False, 아니면 continue굳이 동일 숫자인지 확인 안해도되었고, 홀/짝 경우로 나누지 않고 %2 나머지 값만 확인하면 된다!def isArraySpecial(self, nums: List[int]) -> bool: if len(nums) == 1: return True for i in range(len(nums)-1): if (nums[i] % 2) == (nums[i+1..