Study/코딩테스트(JS)6 08.해시 해시 함수를 사용해서 변환한 값을 인덱스로 삼아 키와 값을 저장⇒ 빠른 데이터 탐색을 제공하는 자료구조다.사실, JS에서 **객체(Object)**나 Map을 사용해서 키-값 쌍을 저장하는 방식을 해시테이블이라 부른다.해시 구조는 이렇게 4가지임키(Key): 저장하고 싶은 데이터의 식별자해시함수(Hash Function): 키를 입력받아 해시 인덱스를 계산해주는 함수해시 인덱스(Hash Index): 해시함수가 계산해낸 고정된 범위의 인덱스값(Value): 실제 저장하고 싶은 데이터해시함수란? ⇒ 임의의 크기의 데이터를 입력받아 고정된 크기의 해시 값으로 변환해주는 함수해시함수는 마치 현장에서 자재 하나하나에 고유 번호를 붙여서 관리하는 것과 비슷하다. 키 → 해시 함수를 통해 계산 → 해시 인덱스 → .. 2025. 2. 25. 07. 큐 ‘줄을 서다’라는 뜻 (FIFO)이런 큐의 특징을 선입선출 또는 FIFO라고 한다.스택과 마찬가지로 큐도 삽입하는 연산을 푸쉬(Push), 꺼내는 연산을 팝(Pop)이라 한다.큐를 사용하는 곳.작업 대기열 : 네트워크 통신 할 때 서버에 작업 요청하면 서버는 들어온 순서대로 작업을 처리이벤트 처리 : 어떤 application & 시스템에서 사용자의 이벤트 (키보드 입력 , 마우스 움직임)큐의 ADT(추상구문트리)enqueue: 큐의 뒤쪽(리어)에 데이터를 추가하는 연산.dequeue: 큐의 앞쪽(프론트)에서 데이터를 제거하고 반환하는 연산.isEmpty: 큐가 비어있는지 확인하는 연산.isFull: 정적 배열 기반의 큐 구현 시 큐가 가득 찼는지 확인하는 연산.front : 앞에 데이터가 있는 위치re.. 2025. 2. 25. 06. 스택 06-1 스택 개념먼저 입력한 데이터를 제일 나중에 꺼낼 수 있는 자료구조LIFO (Last in, First Out)자료구조란? - 자료를 잘 저장하고, 효율적으로 꺼내 쓸 수 있도록 정리해둔 설계도스택의 어원은 ‘쌓는다’5번이 들어오면 5번부터 나온다.push : 스택에 삽입하는 연산pop : 스택을 꺼내는 연산06-2 스택의 정의ADT(abstract data type) - 추상자료형자료형의 설계도인터페이스만 알고 실제로 구현되지 않은 자료형내부 구현은 감추고, 사용자가 "어떤 기능을 수행할 수 있는지"만 알도록 설계된 자료형🔹 ADT의 핵심 특징데이터와 연산을 추상적으로 정의 (구현 방식은 감춰짐)인터페이스만 제공하고 내부 구조는 비공개구현 방식과 상관없이 동일한 동작을 제공해야 함🔹 대표적인.. 2025. 2. 25. 05.배열 배열이란같은 종류의 데이터를 순서대로 저장하는 자료구조하나의 변수 이름으로 동일한 타입의 데이터를 그룹화해서 관리인덱스(index)라는 것으로 원하는 데이터에 임의 접근할 수 있음인덱스 번호는 0부터 시작함배열 생성자를 이용하는 법const arr1 = new Array(6); [undefined,undefined, ...]const arr2 = [...new Array(6)].map((_,i)=> i + 1) //[1,2,3,4,5,6]array.fill(value,start,end)특정 범위를지정한 값으로 채우는 메서드const arr = [1,2,3,4,5]arr.fill(0,1,4) // index 1부터 4이전까지 채움(1~3) 0으로 채움console.log(arr) //[1,0,0,0,5]0.. 2025. 2. 18. 04.코딩테스트 필수 문법 04.1 빌트인 데이터 타입자바스크립트의 빌트인 데이터 타입은 언어 자체에서 제공하는게 두가지다.원시 타입 (primitive type)참조 타입 (reference type)04.2 참조타입🔹 원시 타입 vs 참조 타입JS의 데이터 타입은 크게 두 가지로 나뉨:원시 타입 (Primitive Type)값 자체를 메모리에 저장함.변수에 값을 직접 할당함.number, string, boolean, undefined, null, symbol, bigint참조 타입 (Reference Type)메모리 주소를 저장하고, 실제 데이터는 **Heap(힙 메모리)**에 저장됨.변수가 값을 직접 저장하는 게 아니라, **메모리 주소(참조값)**를 저장함.object, array, function, date, map,.. 2025. 2. 11. 03.알고리즘의 효율 분석(BigO,시간&공간 복잡도) 여기서 가르치는 내용은 이러하다.어떤 알고리즘이 얼마나 잘 작동하는지 측정하는 작업 문제를 해결하는데 방법은 여러가지가 있다.예를 들어 for문을 돌리는 방법도 있겠고 아니면 수학을 이용해서 하는 방법도 있겠다.구현에만 초점을 두는 상황도 있겠지만 성능이 중요할 때가 분명히 있다.어느게 좋은 성능을 내는지 알기 위해 공부를 시작한다. 시간 복잡도알고리즘이 입력 크기에 따라 실행하는 데 걸리는 시간의 증가율을 나타내는 척도코드로 보자.function addUpTo(n) { let total = 0; for (let i = 0; i 지금 두 가지 코드를 가져왔는데 무엇이 더 오래 걸릴까?무엇이 더 좋은 코드일까?예를 들어 2번이 빠른 코드라고 한다면 그 이유는 무엇일까?첫번째는 n에 관련 된 연산 .. 2025. 1. 21. 이전 1 다음