자바스크립트

·Algorithm
동적 프로그래밍 메모이제이션동적 프로그래밍(Dynamic Programming, DP)은 복잡한 문제를 해결하기 위해 작은 부분 문제로 나누어 해결하는 방법.메모이제이션(Memoization)은 이미 계산한 결과를 저장해두고, 동일한 계산을 반복하지 않도록 하는 기술.특징부분 문제의 중복: DP는 동일한 부분 문제를 여러 번 계산하는데, 메모이제이션을 통해 이를 방지합니다.탑다운 접근법: 재귀적으로 문제를 해결하면서, 이미 계산한 결과를 저장.공간 복잡도: 결과를 저장하기 위한 추가 메모리가 필요.장단점장점단점중복 계산 방지로 성능 향상추가 메모리 사용재귀적 접근으로 코드 가독성 향상초기 메모리 할당 및 관리 필요일부 문제에 대해 간단하고 효율적인 솔루션 제공DP가 적용되지 않는 문제도 존재 시간복잡도 ..
·Algorithm
퀵정렬이란?퀵정렬(Quick Sort)은 또 다른 분할 정복 알고리즘, 배열을 하나의 피벗(pivot)을 기준으로 두 개의 부분 배열로 나누고 각각을 정렬하여 전체 배열을 정렬하는 방식. 퀵정렬은 평균적으로 매우 빠른 정렬 알고리즘 중 하나로 알려져 있음퀵정렬 요약 특징  - 분할 정복 알고리즘 - 불안정 정렬 - 재귀적 접근 - 피벗 선택 중요 장점  - 평균적으로 매우 빠름 - 추가 메모리 공간이 거의 필요 없음(제자리 정렬) 단점  - 최악의 경우 O(n^2)의 시간복잡도 - 피벗 선택에 따라 성능이 좌우됨 시간복잡도  - 최선: O(n log n) - 평균: O(n log n) - 최악: O(n^2) 공간복잡도  - O(log n) (재귀 호출 스택 공간)  자바스크립트 예..
·Algorithm
병합정렬이란 병합정렬(Merge Sort)은 분할 정복(Divide and Conquer) 알고리즘의 일종으로, 배열을 반으로 나누어 각각을 정렬한 후 합치는 과정을 반복하여 정렬을 완료하는 알고리즘. 병합정렬은 안정 정렬로, 같은 값의 원소들 간의 순서가 바뀌지 않음.병합정렬 요약특징분할 정복 알고리즘병합정렬은 분할 정복(Divide and Conquer) 알고리즘의 일종문제를 더 작은 부분 문제로 나누고 각각을 해결한 후 합쳐서 최종 해결책을 만드는 방식.재귀적 접근병합정렬은 재귀적으로 배열을 반으로 나누어 더 이상 나눌 수 없을 때까지 나누고, 나눈 배열을 병합하여 정렬외부 정렬 가능병합정렬은 외부 정렬(external sorting)에 적합.대규모 데이터를 정렬할 때, 메모리에 모두 적재할 수 없..
·Algorithm
삽입정렬이란삽입정렬(Insertion Sort)은 리스트의 요소들을 하나씩 비교하여 정렬된 부분과 비교하고, 알맞은 위치에 삽입하여 정렬하는 방식두 번째 요소부터 시작하여, 현재 요소를 정렬된 부분의 적절한 위치에 삽입합니다.이를 위해, 현재 요소보다 큰 요소들을 오른쪽으로 한 칸씩 이동시킵니다.리스트의 끝까지 이 과정을 반복합니다.삽입정렬 요약 특징비교 기반의 정렬 알고리즘으로, 리스트의 요소를 하나씩 정렬된 부분에 삽입하여 정렬합니다.장점1. 구현이 간단하고 이해하기 쉬움.2. 대부분 정렬된 리스트에 대해서는 효율적. 3. 제자리 정렬(in-place sort)로, 추가적인 메모리 공간이 필요 없음.단점1. 시간복잡도가 O(n^2)로, 큰 데이터셋에서는 비효율적.2. 요소의 이동이 빈번하여 많은 교환..
·Algorithm
선택정렬이란선택정렬(Selection Sort)은 비교 기반의 정렬 알고리즘 중 하나로, 다음과 같은 절차를 통해 배열을 정렬.주어진 리스트 중에서 최솟값을 찾음.그 최솟값을 리스트의 맨 앞에 위치한 값과 교환.맨 앞의 값을 제외한 나머지 리스트를 같은 방법으로 정렬.이 과정을 통해 리스트가 정렬될 때까지 반복.선택정렬 요약 특징 비교 기반의 정렬 알고리즘으로, 리스트에서 최솟값을 반복적으로 선택하여 정렬 장점 1. 구현이 간단하고 이해하기 쉬움2. 작은 크기의 리스트에 대해 효율적으로 작동할 수 있음 단점 1. 시간복잡도가 O(n^2)로, 큰 데이터셋에서는 비효율적2. 안정적인 정렬 알고리즘이 아님. 시간복잡도 O(n^2)  자바스크립트 예시function selectionSort(arr) {..
·Algorithm
버블 정렬이란버블 정렬(Bubble Sort)은 간단한 정렬 알고리즘 중 하나로, 인접한 두 원소를 비교하여 필요한 경우 서로 교환하는 방식으로 배열을 정렬함. 이 과정이 배열의 마지막 원소까지 반복되며, 한 사이클이 끝나면 가장 큰 원소가 배열의 끝으로 이동하게 됨. 이러한 사이클을 배열이 완전히 정렬될 때까지 반복.버블 정렬에 대한 요약장점1. 구현이 매우 쉽다.  2. 데이터가 거의 정렬되어 있는 경우 효율적이다.단점1. 효율이 낮다. 2. 큰 데이터셋에 비효율적이다.특징1. 인접한 원소끼리 비교한다. 2. 안정 정렬 (Stable Sort)이다.시간복잡도- 최선: O(n) - 평균: O(n^2) - 최악: O(n^2)공간복잡도O(1) (In-place 정렬 알고리즘) 버블정렬 - 자바스크립트 예시..
·Algorithm
하노이의 탑(탑의 하노이, Tower of Hanoi)은 세 개의 막대와 여러 개의 크기가 다른 원반을 사용하여 퍼즐을 푸는 문제. 퍼즐은 원반들이 한 막대에 크기 순으로 쌓여있는 상태에서 시작하며, 목표는 다음 규칙을 지키면서 다른 막대로 모든 원반을 옮기는 것:한 번에 하나의 원반만 옮길 수 있다.각 이동은 맨 위의 원반만 옮길 수 있다.더 큰 원반은 더 작은 원반 위에 놓을 수 없다.하노이의 탑 알고리즘n개의 원반이 있을 때:n-1개의 원반을 출발 막대에서 보조 막대로 옮긴다.가장 큰 원반을 출발 막대에서 목표 막대로 옮긴다.n-1개의 원반을 보조 막대에서 목표 막대로 옮긴다.이를 자바스크립트로 구현한 예시:function hanoi(n, from, to, aux) { if (n === 1) ..
·CS/Data Structure
Set 자료구조에 대해Set은 중복을 허용하지 않는 자료구조로, 요소의 집합을 나타냄.주로 데이터의 유일성을 보장하고자 할 때 사용수학적 집합 개념을 따르며, 순서가 중요하지 않은 데이터를 관리할 때 유용해시 테이블을 사용한다고 해서 Hash Set이라고도 불림.Set의 주요 연산요소 추가 (Add): Set에 요소를 추가. 중복된 요소는 무시됨.요소 삭제 (Remove): Set에서 특정 요소를 삭제. 요소가 존재하지 않으면 아무런 동작도 하지 않음.요소 존재 여부 확인 (Has): Set에 특정 요소가 포함되어 있는지 확인. 포함 true, 그렇지 않으면 false를 반환.모든 요소 삭제 (Clear): Set의 모든 요소를 삭제.Set 크기 확인 (Size): Set에 포함된 요소의 개수를 반환.S..
예슬e
'자바스크립트' 태그의 글 목록