본문 바로가기

Algorithm/자료구조

(126)
(C++) - LeetCode (easy) 144. Binary Tree Preorder Traversal https://leetcode.com/problems/binary-tree-preorder-traversal/ Binary Tree Preorder Traversal - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com preorder를 구현해보는 문제였습니다. 📕 풀이방법 📔 풀이과정 preorder란 binary tree를 순회하는 방식입니다. root node -> root의 왼쪽 자식 -> root의 오른쪽 자식 순으로 순회하는 algorithm으로 재귀로 ..
(C++) - LeetCode (easy) 141. Linked List Cycle https://leetcode.com/problems/linked-list-cycle/ Linked List Cycle - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 linked list가 들어옵니다. 📔 풀이과정 1. listnode의 값을 index처럼 생각해줍니다. 2. cur로 head를 순회하면서 현재 val을 나올 수 없는 -0x3f3f3f3f(약 -20억) 수로 바꿔줍니다. 3. cycle이 있..
(C++) - LeetCode (easy) 136. Single Number https://leetcode.com/problems/single-number/ Single Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 자료구조를 이용한 구현문제였습니다. 📕 풀이방법 📔 풀이과정 1. 배열을 이용한 풀이 1-1. 배열의 index를 nums의 원소, 해당 index의 원소는 빈도 수라고 생각해 count를 선언해줍니다. 1-2. nums의 원소를 순회하며 빈도 수를 세줍니다. 음수 index를 고려해 3만을 더한 index에..
(C++) - LeetCode (easy) 1. Two Sum https://leetcode.com/problems/two-sum/ Two Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 여러 풀이 방법이 가능한 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 여러 수들이 담긴 nums와 두 수의 합이 target값이 되어야 합니다. 📔 풀이과정 📑 Brute force O(n^2) 이중 for loop로 해결 가능합니다. nums의 원소들을 순회하며 순서 상관없도록 2개의 수를 뽑는다고 생각하면 됩니다. nums[..
(C++) - LeetCode (easy) 112. Path Sum https://leetcode.com/problems/path-sum/ Path Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com leaf node 특징을 파악해 푼 문제였습니다. 📕 풀이방법 📔 풀이과정 말단 node로 가는 여러 경로별로 조건을 확인하는 방법은 재귀함수가 편합니다. 1. 현재 node가 NULL인 경우 : 처음부터 빈 tree이거나 말단 node에 도달하지 못한 경우에 해당합니다. 2. 말단 node인 경우 : 왼쪽과 오른쪽 자식이 없..
(C++) - LeetCode (easy) 111. Minimum Depth of Binary Tree https://leetcode.com/problems/minimum-depth-of-binary-tree/ Minimum Depth of Binary Tree - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 함수호출의 횟수를 줄이는 재귀 구현 문제였습니다. 📕 풀이방법 📔 풀이과정 여러 경우에 따라 leaf인지 아닌지 판별해 호출하는 함수개수를 줄여줍니다. 1. 현재 node가 null인 경우 : 이 경우 재귀의 기저 case 또는 처음에 해당하므로 0을 반환..
(C++) - LeetCode (easy) 110. Balanced Binary Tree https://leetcode.com/problems/balanced-binary-tree/ Balanced Binary Tree - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 자료구조 문제였습니다. 📕 풀이방법 📔 풀이과정 tree의 높이를 구하는 getHeight 함수와, 균형 여부를 판단하는 isBalanced 함수를 구현해줍니다. 1. getHeight함수 tree 의 왼쪽 자식과 오른쪽 자식에 대해 재귀적으로 호출해 높이를 구합니다. 2. isBal..
(C++) - LeetCode (easy) 108. Convert Sorted Array to Binary Search Tree https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ Convert Sorted Array to Binary Search Tree - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 균형 이진 트리를 만드는 문제였습니다. 📕 풀이방법 📔 풀이과정 1. 왼쪽자식과 오른쪽 자식이 균일하게 node를 생성하는 getBST함수를 정의합니다. 2. 재귀적으로 수행하며 left ~ mid - 1까..