All
-
🐣 기수 정렬설명지금까지 살펴본 것들은 비교 정렬 알고리즘기수 정렬의 경우 비교 알고리즘이 아닌 정렬 알고리즘 유형데이터의 특별한 속성 이용직접 비교하지 않는다는 의미로 해당 숫자가 다른 숫자보다 작은지 큰지 비교하지 않고 다른 방식으로 데이터를 정렬 작동 원리비교를 수행하지 않는 정렬 알고리즘숫자로 작동실제로 사용할 때는 이진수 사용하여 다른 데이터 정렬하지만 정렬할 때 사용할 실제 데이터는 숫자, 십진법숫자 크기에 대한 정보를 자릿수로 인코딩 실제 작동 방식 step 1 - 끝나는 1의 자리 숫자로 구분 step 2 - 2로 끝나는 숫자는 버킷 2에 step 3 - 다시 목록 구성 (끝자리 2~9 순서) step 4 - 확인된 숫자 자릿수 제외하고 그다음 10의 자릿수 확인하여 버킷에 분류 ste..
[알고리즘 JS] 기수 정렬(Radix Sort)🐣 기수 정렬설명지금까지 살펴본 것들은 비교 정렬 알고리즘기수 정렬의 경우 비교 알고리즘이 아닌 정렬 알고리즘 유형데이터의 특별한 속성 이용직접 비교하지 않는다는 의미로 해당 숫자가 다른 숫자보다 작은지 큰지 비교하지 않고 다른 방식으로 데이터를 정렬 작동 원리비교를 수행하지 않는 정렬 알고리즘숫자로 작동실제로 사용할 때는 이진수 사용하여 다른 데이터 정렬하지만 정렬할 때 사용할 실제 데이터는 숫자, 십진법숫자 크기에 대한 정보를 자릿수로 인코딩 실제 작동 방식 step 1 - 끝나는 1의 자리 숫자로 구분 step 2 - 2로 끝나는 숫자는 버킷 2에 step 3 - 다시 목록 구성 (끝자리 2~9 순서) step 4 - 확인된 숫자 자릿수 제외하고 그다음 10의 자릿수 확인하여 버킷에 분류 ste..
-
🐣 퀵 정렬설명퀵 정렬은 합병 정렬과 같은 가정으로 작동재귀를 통해 해결하기 가장 쉬운 방식 중 하나기본적으로 데이터를 분할하여 배열에 0개 또는 1개의 항목이 남을 때까지 분할하여 개별적으로 정렬되는 방식항목은 하나 배열피벗 포인트라 부르는 단일 요소를 선택하여 수행어떤 배열에서 어떤 요소를 선택하든 사실상 문제가 되지 않음중앙에 있는 요소 선택했을 경우, 해당 숫자보다 작은 숫자를 왼쪽으로 옮기고, 그 숫자보다 큰 숫자는 오른쪽으로 옮김모두 정렬하려는게 아닌 한쪽으로 옮기는 것그 숫자 하나만 올바른 위치이고, 다른 숫자들이 오른쪽이나 왼쪽에 있지만 정확한 위치는 모름위의 과정을 왼쪽과 오른쪽에 반복 예시[5,2,1,8,4,7,6,3] 있을 경우5보다 작은 2,1,4,3은 왼쪽으로 옮겨짐[2,1,4,..
[알고리즘 JS] 퀵 정렬(Quick sort)과 피벗(pivot)🐣 퀵 정렬설명퀵 정렬은 합병 정렬과 같은 가정으로 작동재귀를 통해 해결하기 가장 쉬운 방식 중 하나기본적으로 데이터를 분할하여 배열에 0개 또는 1개의 항목이 남을 때까지 분할하여 개별적으로 정렬되는 방식항목은 하나 배열피벗 포인트라 부르는 단일 요소를 선택하여 수행어떤 배열에서 어떤 요소를 선택하든 사실상 문제가 되지 않음중앙에 있는 요소 선택했을 경우, 해당 숫자보다 작은 숫자를 왼쪽으로 옮기고, 그 숫자보다 큰 숫자는 오른쪽으로 옮김모두 정렬하려는게 아닌 한쪽으로 옮기는 것그 숫자 하나만 올바른 위치이고, 다른 숫자들이 오른쪽이나 왼쪽에 있지만 정확한 위치는 모름위의 과정을 왼쪽과 오른쪽에 반복 예시[5,2,1,8,4,7,6,3] 있을 경우5보다 작은 2,1,4,3은 왼쪽으로 옮겨짐[2,1,4,..
-
🐣 합병 정렬[합병정렬자료](https://cs.slides.com/colt_steele/intermediate-sorting-algorithms)[sorting](https://visualgo.net/en/sorting?slide=1)[빅오](https://www.bigocheatsheet.com/) 설명기존의 버블,선택,삽입 정렬의 경우 작은 규모에서만 사용. 큰 규모일 경우 시간 오래 걸림 O(n^2)합병 정렬의 경우 O(n long n)으로 향상 가능합병 정렬은 합병 + 정렬 조합 (분할, 정렬, 합병 모두 일어남)0개 요소, 1개 요소 배열이 이미 정렬되어 있다는 점을 활용(예로 만약 숫자 1로만 구성된 배열을 정렬해야 할 경우, 정렬되어 있다는 것을 알고 있음을 활용)배열을 더 작은 배열로..
[알고리즘 JS] 합병 정렬 (merge sort) 나누고 정복해!🐣 합병 정렬[합병정렬자료](https://cs.slides.com/colt_steele/intermediate-sorting-algorithms)[sorting](https://visualgo.net/en/sorting?slide=1)[빅오](https://www.bigocheatsheet.com/) 설명기존의 버블,선택,삽입 정렬의 경우 작은 규모에서만 사용. 큰 규모일 경우 시간 오래 걸림 O(n^2)합병 정렬의 경우 O(n long n)으로 향상 가능합병 정렬은 합병 + 정렬 조합 (분할, 정렬, 합병 모두 일어남)0개 요소, 1개 요소 배열이 이미 정렬되어 있다는 점을 활용(예로 만약 숫자 1로만 구성된 배열을 정렬해야 할 경우, 정렬되어 있다는 것을 알고 있음을 활용)배열을 더 작은 배열로..
-
🐣 정렬기본 내장 JavaScript 정렬sort()기본 정렬 순서는 문자열 유니코드(Unicode) 코드 포인트(code point)에 따름배열의 모든 항목이 문자열로 변환되고, 해당 문자열의 유니코드 값이 선택되고, 그 다음에 항목이 정렬됨.애초에 문자열로 정렬 시작하지 않는 한 원하는 결과 얻는게 힘듦 작동 방법내장 정렬 메소드는 선택적 비교 함수(optional comparator function)를 인자로 전달 받음이 함수를 사용해서 자바스크립트에 우리가 원하는 정렬 방식을 알릴 수 있음기본적으로 이 함수는 A와 B라는 2개의 항목이 있는 구조로 작성반환되는 값을 토대로 만들 정렬 순서를 자바스크립트에 알림만약에 a와 b라는 2개의 항목이 있는 상태에서 음수를 반환하면, 자바스크립트는 두 항목..
[알고리즘 JS] 버블정렬, 선택정렬, 삽입정렬 개념 및 비교!🐣 정렬기본 내장 JavaScript 정렬sort()기본 정렬 순서는 문자열 유니코드(Unicode) 코드 포인트(code point)에 따름배열의 모든 항목이 문자열로 변환되고, 해당 문자열의 유니코드 값이 선택되고, 그 다음에 항목이 정렬됨.애초에 문자열로 정렬 시작하지 않는 한 원하는 결과 얻는게 힘듦 작동 방법내장 정렬 메소드는 선택적 비교 함수(optional comparator function)를 인자로 전달 받음이 함수를 사용해서 자바스크립트에 우리가 원하는 정렬 방식을 알릴 수 있음기본적으로 이 함수는 A와 B라는 2개의 항목이 있는 구조로 작성반환되는 값을 토대로 만들 정렬 순서를 자바스크립트에 알림만약에 a와 b라는 2개의 항목이 있는 상태에서 음수를 반환하면, 자바스크립트는 두 항목..
-
🐣 함수선언, 함수표현식, 화살표함수!최근 알고리즘에 대해서만 정리를 했었는데, 주제의 다양성을 위해 다시 JavaScript 개념을 정리하여 다뤄볼까한다. 오늘의 주제는 함수선언문, 함수표현식 그리고 화살표함수이다!_! 그리고 호이스팅과 TDZ 까지 살펴볼건데, 쉽게 쉽게 정리를 할테니~ 오늘도 스따뜨!! 🐣 함수 선언형1. 개념 및 특징 함수 선언문은 함수 이름과 함께 "function" 키워드를 사용하여 함수를 정의하는 방식. 함수가 호이스팅되기 때문에 함수 정의 이전에 호출해도 동작 함수 선언형은 function 키워드를 사용하여 함수를 선언스크립트나 함수 내에서 어디서든 호출할 수 있음함수 선언형은 호이스팅으로 인해 선언부가 코드 상단으로 끌어올려짐 2. 코드로 살펴보기function..
[JavaScript] 함수 선언문과 함수 표현식, 화살표 함수 그리고 호이스팅🐣 함수선언, 함수표현식, 화살표함수!최근 알고리즘에 대해서만 정리를 했었는데, 주제의 다양성을 위해 다시 JavaScript 개념을 정리하여 다뤄볼까한다. 오늘의 주제는 함수선언문, 함수표현식 그리고 화살표함수이다!_! 그리고 호이스팅과 TDZ 까지 살펴볼건데, 쉽게 쉽게 정리를 할테니~ 오늘도 스따뜨!! 🐣 함수 선언형1. 개념 및 특징 함수 선언문은 함수 이름과 함께 "function" 키워드를 사용하여 함수를 정의하는 방식. 함수가 호이스팅되기 때문에 함수 정의 이전에 호출해도 동작 함수 선언형은 function 키워드를 사용하여 함수를 선언스크립트나 함수 내에서 어디서든 호출할 수 있음함수 선언형은 호이스팅으로 인해 선언부가 코드 상단으로 끌어올려짐 2. 코드로 살펴보기function..
-
🐣 재귀 함수에 대하여이번 게시물에서는 재귀(Recursion)에 대해서 다뤄보도록 하겠당!_! 먼저 재귀 함수를 사용하는 이유에 대해서 살펴보고, 재귀가 어떻게 진행되는지 스택호출 순서에 대해서 살펴볼 것이당. 그리고 순서대로 재귀함수 기본, 반복문과 재귀함수를 이용한 팩토리얼, Helper 메소드 재귀까지 살펴보쟝!_! 쉬운 코드들로 진행을 하니 이해하기는 편할 것이당!_! 레츠꼬우꼬우!! 🐣 재귀 함수를 사용하는 이유▷ 정의재귀는 자기자신을 호출하는 절차. 자바스크립트(JavaScript)나 코드를 가지고 하는 모든 일.우리가 말하는 재귀는 자기자신을 호출하는 함수. 스스로를 호출.Laugh라는 이름의 함수가 존재하면 내부 함수의 이름도 Laugh. ▷ 살펴보기 (재귀 예시)두 가지의 서로 ..
[알고리즘 JS] 재귀(Recursion)🐣 재귀 함수에 대하여이번 게시물에서는 재귀(Recursion)에 대해서 다뤄보도록 하겠당!_! 먼저 재귀 함수를 사용하는 이유에 대해서 살펴보고, 재귀가 어떻게 진행되는지 스택호출 순서에 대해서 살펴볼 것이당. 그리고 순서대로 재귀함수 기본, 반복문과 재귀함수를 이용한 팩토리얼, Helper 메소드 재귀까지 살펴보쟝!_! 쉬운 코드들로 진행을 하니 이해하기는 편할 것이당!_! 레츠꼬우꼬우!! 🐣 재귀 함수를 사용하는 이유▷ 정의재귀는 자기자신을 호출하는 절차. 자바스크립트(JavaScript)나 코드를 가지고 하는 모든 일.우리가 말하는 재귀는 자기자신을 호출하는 함수. 스스로를 호출.Laugh라는 이름의 함수가 존재하면 내부 함수의 이름도 Laugh. ▷ 살펴보기 (재귀 예시)두 가지의 서로 ..
-
🐣 다중 포인터 패턴?이번에 정리할 내용은 다중 포인터 패턴! 간단하게 설명하자면, 두개의 포인터가 고유값을 세는 것인데 아무튼 이에 대해서 코드와 함께 개념 정리를 해보자꾸! 🐣 정의 🌼 설명이 패턴의 개념은 인덱스나 위치에 해당하는 포인터나 값을 만든 다음 특정 조건에 따라 중간 지점에서부터 시작 지점이나 끝 지점이나 양쪽 지점을 향해 이동시키는 것. 결론적으로 배열이나 문자열과 같은 일종의 선형 구조나 또는 나중에 살펴볼 패턴들 중에 익숙하지 않겠지만 이중 연결 리스트나 단일 연결 리스트를 만드는 것. 이런 패턴들 일단 몰라도 됨.한 쌍의 값이나 조건을 충족시키는 무언가를 찾는다는 개념을 알아두기.[-4, -3, -2, -1, 0, 1, 2, 5]"alidjflijweortjwojros" ..
[알고리즘JS] 다중 포인터 패턴🐣 다중 포인터 패턴?이번에 정리할 내용은 다중 포인터 패턴! 간단하게 설명하자면, 두개의 포인터가 고유값을 세는 것인데 아무튼 이에 대해서 코드와 함께 개념 정리를 해보자꾸! 🐣 정의 🌼 설명이 패턴의 개념은 인덱스나 위치에 해당하는 포인터나 값을 만든 다음 특정 조건에 따라 중간 지점에서부터 시작 지점이나 끝 지점이나 양쪽 지점을 향해 이동시키는 것. 결론적으로 배열이나 문자열과 같은 일종의 선형 구조나 또는 나중에 살펴볼 패턴들 중에 익숙하지 않겠지만 이중 연결 리스트나 단일 연결 리스트를 만드는 것. 이런 패턴들 일단 몰라도 됨.한 쌍의 값이나 조건을 충족시키는 무언가를 찾는다는 개념을 알아두기.[-4, -3, -2, -1, 0, 1, 2, 5]"alidjflijweortjwojros" ..
-
🤖 문제 해결 패턴문제 해결 패턴에서 빈도 수 세기 패턴을 정리해보자! 사실 코드를 치며 각 주제마다 폴더를 만들어 README에 정리를 한 내용을 슬쩍슬쩍 옮겨오는 것이지만! 블로그에도 정리해두면 좋을 것 같아서 옮겨본다.레츠꼬우~!_! 🐣 Question2개의 배열을 허용하는 same이라는 함수를 작성.배열의 모든 값이 두 번째 배열에 해당하는 값을 가지면 참을 반환.따라서 첫 번째 배열에는 여러 값, 두 번째 배열의 값이 정확히 동일하지만 제곱되어 있음.순서는 상관 없고, 제곱만 되어 있으면 됨. 값의 빈도도 동일해야 함.🐤 example입력 값1,2,3반환 값4,1,9 // true1,9,9 // false🐤 solution 1O(o^2)function same(arr1, arr2) { ..
[알고리즘JS] 빈도 수 세기 패턴🤖 문제 해결 패턴문제 해결 패턴에서 빈도 수 세기 패턴을 정리해보자! 사실 코드를 치며 각 주제마다 폴더를 만들어 README에 정리를 한 내용을 슬쩍슬쩍 옮겨오는 것이지만! 블로그에도 정리해두면 좋을 것 같아서 옮겨본다.레츠꼬우~!_! 🐣 Question2개의 배열을 허용하는 same이라는 함수를 작성.배열의 모든 값이 두 번째 배열에 해당하는 값을 가지면 참을 반환.따라서 첫 번째 배열에는 여러 값, 두 번째 배열의 값이 정확히 동일하지만 제곱되어 있음.순서는 상관 없고, 제곱만 되어 있으면 됨. 값의 빈도도 동일해야 함.🐤 example입력 값1,2,3반환 값4,1,9 // true1,9,9 // false🐤 solution 1O(o^2)function same(arr1, arr2) { ..