Algorithm/LeetCode

    [LeetCode] 1448. Count Good Nodes in Binary Tree (C#)

    https://leetcode.com/problems/count-good-nodes-in-binary-tree/ Root 노드부터 현재 노드(X)까지 이동하는 동안 자신(X)보다 큰 값을 가진 노드가 없는 경우 X는 GoodNode가 된다.이때 주어진 이진 트리의 GoodNode 개수를 구하는 문제.  1. 풀이현재 노드의 값이 지금까지 지나온 값들과 비교해 같거나 크면 GoodNode 카운팅namespace PS.LeetCode;public class Solution_1448_1{ public int GoodNodes(TreeNode root) { var result = 0; Dfs(root, root.val, ref result); return resu..

    [LeetCode] 328. Odd Even Linked List (C#)

    [LeetCode] 328. Odd Even Linked List (C#)

    https://leetcode.com/problems/odd-even-linked-list/description/   홀수번째 Node를 앞으로 당겨오고, 짝수번째 Node를 뒤로 밀어주는 문제. 제한 사항공간 복잡도 : O(1)시간 복잡도 : O(N) 1. 풀이더 이상 Odd 노드가 없을 때까지 Odd는 Odd끼리, Even은 Even끼리 연결마지막에 Odd의 tail과 Even의 head를 연결namespace PS.LeetCode;public class Solution_328_1{ public class ListNode { public int val; public ListNode next; public ListNode(int val = 0, ListN..

    [LeetCode] 2095. Delete the Middle Node of a Linked List (C#)

    https://leetcode.com/problems/delete-the-middle-node-of-a-linked-list linkedlist의 head가 주어진다.해당 linkedlist의 middle 노드를 삭제하고, 변경된 리스트의 head를 반환하는 문제.middle 노드의 기준은 리스트의 사이즈를 n이라고 가정하고 [ n / 2 ] 번째 노드를 뜻한다.  1. 원 포인터를 사용한 풀이middle 노드가 몇 번째인지 확인하는 과정이 들어간다.middle 노드 직전에서 순회를 멈추고 다다음 노드를 Next 로 바라본다.원소가 1개인 경우는 예외 케이스로 처리public class ListNode { public int val; public ListNode next; public L..

    [LeetCode] 238. Product of Array Except Self (C#)

    https://leetcode.com/problems/product-of-array-except-self/nums[i] 자신을 제외한 다른 모든 원소의 곱을 answer[i] 에 입력하여 반환하는 문제.nums 배열 원소의 prefix product 값과 suffix product 값은 32bit 정수값이 되도록 주어진다. 제한사항시간복잡도 O(n)나눗셈 연산 사용 불가  1. 나눗셈 연산을 사용했을 때의 답안결과가 0 이 되는 경우를 분리하여 코드를 구성한 번에 이해하기 어려운 조건식list 배열을 사용하여 불필요한 Array 변환 과정이 있음public class Solution { public int[] ProductExceptSelf(int[] nums) { var pro..