메모리
·
개발정보
프로그램(프로세스)이(가) 실행되면 OS는 메모리에 공간을 할당해준다. 공간을 할당하는 것이지 메모리 전체의 영역이 Code, Data, Heap, Stack 으로 이루어진 것이 아닌 일정 공간을 4가지로 나누는 것이다. 메모리 영역을 크게 정적인 영역과 동적인 영역으로 나눠보았다. 정적인 영역 프로그램이 시작할 때 할당되고, 프로그램이 종료되면 소멸한다. 코드 영역 실행할 프로그램의 코드 즉, 소스코드가 저장되는 영역. 다른 이름으로 텍스트 영역이라고 부르기도 한다. CPU가 코드 영역에서 저장된 명령을 하나씩 가져가서 처리하게 된다. ※ JVM, Node or 브라우저에서는 TEXT 영역 X 데이터 영역 전역 변수와 정적 변수가 저장되는 영역 3가지로 나뉜다. Read-Only : const, fin..
[알고리즘] 배상 비용 최소화
·
알고리즘
들어가며 힙 - JavaScript를 먼저 공부한 다음 푼 문제입니다. 바로 풀리지 않거나 설명이 필요하다면 참고하는 것을 추천드립니다. 문제 설명 OO 조선소에서는 태풍으로 인한 작업지연으로 수주한 선박들을 기한 내에 완성하지 못할 것이 예상됩니다. 기한 내에 완성하지 못하면 손해 배상을 해야 하므로 남은 일의 작업량을 숫자로 매기고 배상비용을 최소화하는 방법을 찾으려고 합니다. 배상 비용은 각 선박의 완성까지 남은 일의 작업량을 제곱하여 모두 더한 값이 됩니다. 조선소에서는 1시간 동안 남은 일 중 하나를 골라 작업량 1만큼 처리할 수 있습니다. 조선소에서 작업할 수 있는 N 시간과 각 일에 대한 작업량이 담긴 배열(works)이 있을 때 배상 비용을 최소화한 결과를 반환하는 함수를 만들어 주세요. ..
[알고리즘] 힙 - JavaScript
·
알고리즘/풀이 힌트
힙? 이진 트리 형태를 가지며 우선 순위가 높은 요소가 먼저 나가기 위해 요소가 삽입, 삭제 될 때 바로 정렬되는 특징이 있다. 힙의 특징 우선 순위가 높은 요소가 먼저 나가는 특징이 있다. 루트가 가장 큰 값이 되는 최대 힙과 루트가 가장 작은 값이 되는 최소 힙이 있다. 자바스크립트에선 직접 구현해야지 사용이 가능하다. JavaScript에서 사용하기 class MaxHeap { constructor() { this.heap = [null]; } push(value) { this.heap.push(value); let currentIndex = this.heap.length - 1; let parentIndex = Math.floor(currentIndex / 2); while (parentIndex..
[JavaScript] 콜스택
·
JavaScript
1. JavaScript 자바스크립트는 하나의 스레드로 단 1개의 동시성만 다루는 언어이다. 즉, 한 번에 한 개의 작업만 할 수 있다는 뜻이다. 단, 비동기 콜백들은 제외하고 말이다. 자바스크립트는 힙, 큐와 함께 구성하는 단일 콜스택을 가진다. 2. 콜스택 원시 타입의 데이터가 저장되거나 함수의 호출을 기록하는 자료구조이다. 기본적으로 프로그램 안에 위치해서 우리가 어떤 함수를 실행시키면 스택 위에 작업을 추가(Push)하고, 함수로부터 반환받을 때 스택의 맨 위에서부터 가져온다(Pop). function foo(b) { let a = 5; return a * b + 10; } function bar(x) { let y = 3; return foo(x * y); } console.log(bar(b))..