배열

unordered_map과 배열의 성능 차이오프라인 쿼리 문제를 풀다가 unordered_map을 이용하면 시간초과가 나고 배열을 사용하면 시간이 단축되는 경험을 했다. 둘 다 접근할 때 O(1)으로 알고 있었는데, 어디서 차이가 날까 생각해보았다. 해시충돌 때문이라고 넘어갈까 했지만 자세히 알아보고 기록해두는 게 좋을 거 같아서 포스팅하기로 결정했다. 1. unordered_map vs 배열a) unordered_map의 특성시간 복잡도평균적으로 O(1) 시간에 접근 가능핮만 최악의 경우 O(N)으로 느려질 수 있음 (해시 충돌 발생 시)캐시 활용도unordered_map은 내부적으로 해시 테이블을 사용하며 데이터가 메모리 상에 분산되어 저장된다.따라서 캐시 적중률(cache hit rate)가 낮아질..
· JAVASCRIPT
불변성과 가변성 불변성과 가변성은 그 데이터가 원시형인가 참조형인가에 따라 갈리는 성질이다. 객체(object), 배열(array), 함수(function)이 참조형 데이터에 해당된다. 이를 제외한 데이터는 원시형에 해당된다. 원시형 데이터는 불변성을, 참조형 데이터는 가변성을 가지고 있다. 원시형은 모양이 같으면 같다고 할 수 있지만, 객체형은 모양이 같다고 해서 같다고 해서는 안된다. // 불변성 & 가변성 // 불변성(Immutability)은 생성된 데이터가 메모리에서 변경되지 않고 가변성(Mutability)은 생성된 데이터가 메모리에서 변경될 수 있음을 의미 // 참조형: 객체, 배열, 함수 // 자바스크립트 원시형은 불변성을, 참조형은 가변성을 가지고 있다. let a = 1; let b =..
· JAVASCRIPT
구조분해할당... 이름만 들어도 귀찮고 진짜 많이 안쓸 거 같은데 javascript에서 가장 많이 쓰이는 문법 중 하나라고 한다. 아직 배울 게 정말 산더미처럼 많구나... 라고 느낀 부분이다. 화이팅해서 차근차근 학습하고 프로젝트에도 적용시켜보자. 구조분해할당(Destructuring Assignment) : 배열 또는 객체의 구조를 분해하여, 그 값을 개별 변수에 담는 표현식을 의미한다. const arr = [1, 2, 3, 4, 5]; 이런 배열이 하나 있다고 생각해보자. 배열의 값을 사용하는 방법은 arr[0]과 같이 인덱스에 접근하는 것이다. const one = arr[0]; const two = arr[1]; const three = arr[2]; 쓰다보니 매우 귀찮다. 이걸 간편하게 하..
· JAVASCRIPT
배열, 객체 리터럴 모두 자료형은 object이다. 하지만 배열은 Array.prototype 객체가 부모 객체, 객체 리터럴 방식으로 생성한 객체는 Object.prototype 객체가 부모 객체이다. splice(start, deleteCount, item) start: 배열에서 시작 위치 deleteCount: start에서 지정한 시작 위치부터 삭제할 요소의 수 item: 삭제할 위치에 추가할 요소 delete는 원소 자체를 삭제하지는 않음. 원소 자체를 삭제하려면 splice를 사용하는 것이 용이. 생성자 함수로 배열과 같은 객체를 생성할 때는 반드시 new 연산자를 같이 써야한다. 호출할 때 인자가 1개이고, 숫자인 경우: 호출된 인자를 length로 갖는 빈 배열 생성 그 외의 경우: 호출된..