전체 글

·공부/React
리액트 프로젝트를 생성하는 방법에는 여러가지가 있다. 특히 CLI (Command Line Interface)를 많이 사용하는데, 복잡한 밑작업 필요없이 커맨드 한 줄로 프로젝트를 간편하게 생성할 수 있는 마법의 명령어이다. 대표적인 CLI로는 CRA (create-react-app)와 Vite가 있는데, 대략 아래와 같은 차이가 있다.  요약하자면 CRA는 커뮤니티가 활성화되어있고 많은 기능을 제공하는 대신 속도가 느리고 커스터마이징이 어려운 반면, Vite는 사전 제공 기능은 덜 풍부하지만 커스터마이징이 비교적 자유롭고 빌드 속도가 빠르다는 장점이 있다. 실제로 사용해 보았을 때, CRA는 빌드 속도가 느린 대신 Vite보다 모바일 환경에서 지원되는 기능이 많다는 느낌을 받았었다. 그렇다면 이 차이는..
·공부
큐 (Queue) 큐는 선입선출 (FIFO, First-In First-Out) 형식의 자료 구조로, 후입선출 (LIFO, Last-In First-Out) 배열인 스택과는 반대되는 개념이다.BFS 문제를 풀 때 주로 사용하게 되는데, JS에는 dequeue와 동일한 역할을 하는 shift 메소드가 존재하지만, 시간 복잡도가 O(n)인 관계로 배열의 길이가 긴 알고리즘 풀이에 활용하려면 큐를 직접 구현할 필요가 있다...   코드class Node { constructor(data) { this.data = data; this.next = null; }}class Queue { constructor() { this.head = null; this.tail = null; t..
·공부
힙 (Heap) 힙은 트리 기반의 자료구조로, 완전 이진 트리 자료구조 (마지막 레벨을 제외하고 모든 레벨이 채워져있으며, 마지막 레벨은 왼쪽부터 채우는 트리 구조)이다. 또한, 힙은 최소 힙(Min Heap)과 최대 힙(Max Heap)으로 구성되는데, 최대 힙은 부모 노드가 항상 자식 노드보다 값이 커야 하며, 최소 힙은 반대로 부모 노드가 항상 자식 노드보다 값이 작아야 한다. # 힙의 인덱스 관계좌측 자식 노드의 인덱스 = 부모 노드의 인덱스 * 2 + 1우측 자식 노드의 인덱스 = 부모 노드의 인덱스 * 2 + 2부모 노드의 인덱스 = (자식 노드의 인덱스 - 1) // 2 우선순위 큐 (Priority Queue)우선순위 큐란 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조로, 다익..
codgehog
콩부합시다