LeetCode 공부 - Same Tree

LeetCode(100) - Same Tree 문제 Binary Tree 두 개가 주어진다. 두 Binary Tree가 같은지 비교하여 같다면 True를, 다르다면 False를 반환한다. 입력 root = [1,null,2,3] 출력 [1,3,2] 풀이 주어진 Binary Tree의 root에서 중위순회한다. Inorder traversal은 Bianry Tree에서 좌측 노드를 먼저 순회 후, 자기 자신, 그리고 우측 노드를 탐색하는 방법이다. 주어진 입력에서 root노드는 1, 좌측 노드는 없으므로 자기 자신 1이 먼저 출력되고, 우측 노드로 이동 한다. 우측노드에서는 좌측노드로 이동, 마찬가지고 좌/우 노드가 없으므로 자기 자신이 출력된다....

January 9, 2023 · 2 min · 220 words · Me

LeetCode 공부 - Binary Tree Inorder Traversal

LeetCode(94) - Binary Tree Inorder Traversal 문제 Binary Tree의 root가 주어진다. Inorder Traversal(중위순회)를 한 결과를 반환하라. 입력 root = [1,null,2,3] 출력 [1,3,2] 풀이 주어진 Binary Tree의 root에서 중위순회한다. Inorder traversal은 Bianry Tree에서 좌측 노드를 먼저 순회 후, 자기 자신, 그리고 우측 노드를 탐색하는 방법이다. 주어진 입력에서 root노드는 1, 좌측 노드는 없으므로 자기 자신 1이 먼저 출력되고, 우측 노드로 이동 한다. 우측노드에서는 좌측노드로 이동, 마찬가지고 좌/우 노드가 없으므로 자기 자신이 출력된다....

January 9, 2023 · 2 min · 216 words · Me

LeetCode 공부 - Merge Sorted Array

LeetCode(88) - Merge Sorted Array 문제 두 개의 오름차순으로 정렬된 정수형 배열 nums1과 nums2가 주어진다. 또한 nums1의 element의 수를 나타내는 m과 nums2의 수를 나타내는 n이 주어진다. 두 배열을 병합하여 오른차순으로 정렬된 배열을 반환하라. 추가적인 배열을 선언하지 않고 nums1에 정렬된 배열을 반환하라. 입력 Input: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 출력 Output: [1,2,2,3,5,6] 풀이 하나의 배열을 내부적으로 선언하고, 두 배열의 index들을 하나씩 증가하며 새로 선언한 배열 index에 할당한 다음, 입력받은 두 배열을 모두 순회하면 선언한 배열을 nums1이 복사하여 풀 수 있다....

January 7, 2023 · 2 min · 295 words · Me

LeetCode 공부 - Remove Duplicates from Sorted List

LeetCode(83) - Remove Duplicates from Sorted List 문제 정수를 포함하는 구조체 리스트가 정렬되어 주어진다. 중복된 노드를 제외한 리스트 head를 반환하라 입력 Input: head = [1,1,2,3,3] 출력 Output: [1,2,3] 풀이 List를 head부터 NULL이 아닐때 까지 순회하면서 현재 노드의 val과 다음 노드의 val이 같다면, cur 노드의 next를 next->next로 한칸 건너 뛴다. val과 같지 않다면 cur노드는 다음 노드를 가리킨다. 코드 LeetCode에서 바로 실행해서 이번에는 main이 없습니다. /** * Definition for singly-linked list....

December 8, 2022 · 1 min · 145 words · Me

LeetCodee 공부 - Climbing Stairs

LeetCode(70) - Climbing Stairs 문제 n개의 단이 있는 계단이 있다. 계단을 오르는 방법은 1칸씩 혹은 2칸씩 오르는 방법이 있다. n번째의 계단을 오르는 방법을 몇개나 있는지 반환하라. 입력 Input: n = 3 출력 Output: 3 Explanation: There are three ways to climb to the top. 1. 1 step + 1 step + 1 step 2. 1 step + 2 steps 3. 2 steps + 1 step 풀이 풀때마다 항상 어려운 DP(Dynamic Programming)문제다....

December 8, 2022 · 2 min · 254 words · Me