본문 바로가기

전체 글

(348)
[자료구조] Deque with JS 메모리 누수 방지 지난 시간에 {}(객체 리터럴)을 이용해 만든 Deque 클래스를 배열을 활용해 만들어 보겠습니다. 배열의 크기를 지정해서 사용하는 방법으로 메모리를 덜 사용한다는 장점이 있습니다. class Deque { #deque; #capacity = 0; // 배열의 크기 제한 #head = 0; #tail = -1; #size = 0; constructor(capacity) { this.#capacity = capacity; this.#deque = new Array(capacity); } isEmpty() { return this.#size === 0; } get size() { return this.#size; } pushFront(x) { if (this...
[자료구조] Deque with JS 리팩토링 [자료구조] Deque 구현 기존에 구현했던 Deque을 좀 더 최적화해 보겠습니다. 문제 1. isEmpty()에서 !this.#deque[this.#front] 조건이 JS에서 falsy일 때size 변수를 추가해 isEmpty()나 size()를 단순화 문제 2. 메서드명 일관성 pushBack(), popFront()pushFront(), pushBack(), popFront(), popBack(), peekFront(), peekBack()으로 통일 애매한 문제 3. 전위, 후위 연산자는 명시적인가?명시적이지 못하다는 평이 있습니다만 개발자라면 다들 자주 사용한다고 생각하기에 넘어갑니다. 문제 4. 메모리 누수해당 부분을 수정하기 위해선 #deque의 크기를 고정하고 사용하면 됩니다. 원형 큐를..
[자료구조/미완] Linked List(연결리스트) with JS 코드는 복사가 가능하니 살펴보고 싶으시면 IDE에 복사해서 살펴보시는 것을 추천드립니다. ^^단일 연결 리스트class Node { constructor(d) { this.data = d; this.next = null; }}▲노드class LinkedList { #head = null; #tail = null; #size = 0; get size() { return this.#size; } isEmpty() { return this.#size === 0; } add(node) { if (this.isEmpty()) { this.#head = node; this.#tail = this.#head; } else { this.#tail.nex..
[윈도우] 10에서 11로 업데이트하기 자자 이제 윈도우 10이 막을 내린다고 합니다~ 그전에 업데이트를 준비해서 진행까지 해보겠습니다. 우선 필요한 것은 PC 상태 검사 앱입니다. 하단 링크를 통해서 다운로드하실 수 있고 사기당할까 두려우신 분은 검색해서 다운로드하시면 됩니다.https://aka.ms/GetPCHealthCheckApp앱 다운로드 마소 공식 사이트도 링크 올리겠습니다. 설치를 마치고 실행하시면 다음 화면이 보입니다. 1. '지금 확인' 버튼을 눌러 업데이트가 가능한지 확인하겠습니다.2. 확인을 하셨다면 'Windows 업데이트 열기' 링크를 눌러 윈도우 설정에서 Windows 업데이트 화면으로 이동하겠습니다.위 결과 화면과 동일하게 나오면 업데이트를 진행하면 됩니다. Windows 11 다운로드이 옵션은 부팅 가능한 설치..
[유튜브 리뷰] AI 창의력 훈련, 실리콘밸리가 사용하는 업무 프로세스 📽첫 번째 영상우선 AI 챗 봇 많이 아는 ChapGPT를 검색 엔진처럼 쓰지 말라는 썸네일에 이끌려 영상을 보게 되었습니다. EO 채널에서 제공되는 영상입니다. 해당 영상은 스탠포드 교수님 제레미 어틀리가 나와서 해당 방법을 설명해 주는데 흥미로우면서 당연히 그렇게 쓰는 게 더 좋겠다는 생각이 들었습니다. 영상을 보거나 강의 들을 때 이렇게 당연하다는 생각이 들면 자만심이랄까요? 기억에 오래 안 가던데... 살짝 속상합니다. 하지만 그래서 글을 작성하기 때문에 기억이 안 나도 찾아보면 될 것 같습니다. ^^ 내용을 간단하게 정리하자면 AI에게 묻지 말고 AI가 물어볼 수 있도록 질문하라는 내용과 AI를 도구로 이용하지 말고 team mate처럼 피드백하고 대화를 하라는 이야기였습니다. 기억에 남는 내..
[자료구조] Deque with JS 최적화는 생각나지 않고, 문제를 풀며 덱을 구현해 본 코드입니다. 최적화는 더 조사해 보고 다른 글로 올리겠습니다. Deque 구현 아이디어앞, 뒤로 모두 추가 제거 및 조회 가능Queue의 구현에서 앞에서 추가, 뒤에서 제거 두 가지 추가 구현하면 될까?front와 rear는 각각 현재 요소의 위치를 가리킨다. 만약 두 값이 같은데 실질적인 요소가 없는 경우 비었다고 판단→ 이 경우로 인해서 size(), pop(), popFront()의 조건문이 추가됨(여기가 의문이 든다)print()를 통해 디버깅class Deque { #deque = {}; #front = 0; #rear = 0; isEmpty() { return this.#front === this.#rear && !this.#d..
[코테 꿀팁] 시간 초과 발생 시 console.log 줄이기 코딩 테스트를 진행하다 보면 이상하게 시간 초과가 발생하는 일이 있습니다. 그럴 때 console.log()를 많이 사용했는지 확인해보아야 합니다. 출력이 많은 문제의 경우 console.log()를 많이 사용했을 때 시간 초과가 발생하는 경우가 있습니다. 예를 들어 백준의 28278번// 시간 초과 코드const input = require("fs") .readFileSync("dev/stdin") .toString() .trim() .split("\n");const N = Number(input[0]);const stk = [];const cmd = { 1: (x) => { stk.push(x); }, 2: () => { console.log(stk.length ? stk.po..
[알고리즘] 에라토스테네스의 체 in JS(Refactoring) 기존 작성한 알고리즘에서 최적화가 되지 않아 시간이 더 걸리는 문제를 발견했고 이를 수정합니다.[알고리즘] 에라토스테네스의 체(소수 판별) function primeNumberSieve(n) { const area = new Array(n + 1).fill(false); const result = []; // i { if (index > 1 && !flag) { result.push(index); } }); return result;}const result = primeNumberSieve(10);console.log(result);// [2, 3, 5, 7] console.time()과 console.timeEnd()를 이용해 간단하게 시간을 계산해 본 결과 최적화가 된 ..