Algorithm
[LeetCode] - happy number
Write an algorithm to determine if a number n is happy. A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits. Repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy. R..
[LeetCode] - Missing Number
0~n까지의 범위를 가지고 있는 nums 배열이 있다. 이 배열에서 빠진수를 구하여 리턴하시오 공간복잡도 O(1), 시간복잡도 O(N) Constraints: n == nums.length 1
[LeetCode] - Remove Element
Given an array nums and a value val, remove all instances of that value in-place and return the new length. Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory. The order of elements can be changed. It doesn't matter what you leave beyond the new length. Clarification: Confused why the returned value is an integer but your ..
Unfold Recursion
재귀 전개 재귀는 적절하게 사용될 경우 우아하고 직관적인 솔루션이 될 수 있으나 여러가지 이유로 반복 알고리즘으로 변경해야 할 수 있다. 스택오버플로우의 위험성(Risk of Stackoverflow) 재귀는 종종 시스템 스택에서 추가 메모리 소비를 발생 시키며, 각 프로그램은 제한된 리소스로 운용된다. 이를 피하기 위한 꼬리 재귀가 존재하나 모든 재귀가 꼬리재귀를 사용할 수 있는 것이 아니다 모든 컴파일러에서 꼬리 재귀 최적화를 지원하지는 않는다. 능률(Efficiency) 중복 계산의 위험성 복잡도(Complexity) 재귀 남용시 반복 알고리즘 보다 읽고 이해하기가 어려울 수 있다 (중첩된 재귀) 두 TreeNode가 동일한지 비교하는 Solution으로 재귀 -> 반복으로 만들어보자. 재귀로 만든..
Merge Sort
분할 정복 알고리즘의 대표적 예제 중 하나인 병합 정렬은 효율적이고 범용적인 정렬 알고리즘이다. 병합 정렬 알고리즘을 구현하는 방법에는 위에서 아래로 또는 아래에서 위로 두 가지가 있습니다. 여기서는 재귀를 사용하여 자연스럽게 구현할 수있는 하향식 접근 방식을 설명합니다 . 병합 정렬 알고리즘은 모든 나누기 및 정복 알고리즘과 같이 세 단계로 나눌 수 있습니다. 주어진 정렬되지 않은 목록을 여러 하위 목록으로 나눕니다. ( 나누기 ) 각 하위 목록을 재귀 적으로 정렬합니다. ( 정복 ) 정렬 된 하위 목록을 병합하여 새 정렬 된 목록을 생성합니다. ( 결합 ) 하향식 접근 방식 하향식 병합 정렬 알고리즘이 어떻게 작동하는지 구체적인 예를 살펴 보겠습니다. 아래 그림과 같이 8 개의 요소가있는 정렬되지 않..
Divide and Conquer Algorithm
Divide and Conquer Algorithm 알고리즘이란?직역하자면 나눠서 정복한다.하나의 문제를 두 가지 혹은 그 이상의 작은 문제들로 나눠 해결하여 본래의 문제를 해결하는 방식 D & C Divide and Conquer Algorithm's classic examples Merge Sort Quick Sort en.wikipedia.org/wiki/Divide-and-conquer_algorithm Divide-and-conquer algorithm - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Algorithms which recursively solve subproblems In com..