본문 바로가기

자료구조 알고리즘8

B tree 톺아보기 해당 강의 영상 정리 https://youtu.be/bqkcoSm_rCs?si=Nx7dqp3mvUHWsXpU 인덱스 내용을 보다가 DB의 인덱스 구현에 사용되는 자료구조를 파악해야겠음을 느꼈다. 이진탐색트리 (BST) 이진 트리 기반의 탐색을 위한 자료구조 모든 노드의 왼쪽 서브트리는 해당 노드의 값보다 작은 값들만 가지고 모든 노드의 오른쪽 서브트리는 해당 노드의 값보다 큰 값들만 가짐 자식 노드는 최대 2개까지 가질 수 있어서 '이진' 트리임 모든 원소의 키는 유일함 이진탐색트리에서 더 나아가 자식 노드를 3개로 해주고 싶다면? 이와 같은 모양이 될 것이다. 이때 3개의 자식 노드는 이진탐색트리와는 달리 중간 범위가 늘어나면서 저장해줘야하는 값이 기존의 기준 값(k1)을 제외하고 하나(k2)가 더 늘.. 2024. 2. 23.
프로그래머스 소인수분해 문제 설명 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ n ≤ 10,000 function isPrime(n) { if(n === 1) return false; for(let i = 2; i < n; i++) { if(n % i === 0) return false; } return true; } // 소수인지 확인하는 함수 function solution(n) { let answer = new Set(); for(let i = 2; i 2023. 3. 6.
프로그래머스 Lv0 최댓값 만들기(2) 문제 설명 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요. 제한사항 -10,000 ≤ numbers의 원소 ≤ 10,0002 ≤ numbers 의 길이 ≤ 100 접근방법 주어진 배열을 양수 배열과 음수 배열로 나눠서 처리해준다. 배열 내장 메서드인 sort로 각각의 음수양수 배열을 정렬해준다. (Math.max()도 괜찮을 듯) 음수 배열의 경우는 0번째, 1번째를 곱한 값이 최댓값이 될거고 양수 배열의 경우는 length-1과 length-2번째를 곱한 값이 최댓값이 될 것이다 음수나 양수가 없는 리스트가 주어질 수 있으므로 그 조건식으로 한차례 걸러준다. 대충 이렇게까지 했을 때 .. 2023. 2. 19.
프로그래머스 Lv0 직각삼각형 출력하기 프로그래머스 입문 문제 풀다가 처음 보는 개념을 발견해서 정리한다. 문제 자체는 쉬웠지만 console.log로만 출력하다가 개행이 되지 않는 출력법이 필요하여 서칭해보니 process.stdout.write()를 사용하면 개행이 되지 않고 출력이 가능하다. 문제 설명 "*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요. 무슨 언어를 하든 별로 무언가 그리기는 기초 문제 같다. 제한사항 1 ≤ n ≤ 10 const readline = require('readline'); const rl = readline.createInterface({ input: process... 2023. 2. 19.