Call Stack콜 스택이란 무엇일까. Call Stack은 함수를 사용할 때마다, 관련된 정보들이 쌓이는 곳이다. 단어를 그대로 보면, Call 은 호출을 말하고 Stack은 자료 구조인 Stack을 말한다. 즉 함수가 호출될 때 스택에 정보가 쌓이는 곳을 콜스택이라고 한다. 프로그램에서 함수들이 연쇄적으로 호출될 때, 스택의 형태로 메모리에 들어왔다가 나가게 된다.function f1() { f2();}function f2() { f3();}function f3() {}f1(); 아주 간단한 예시로 살펴보자 위 프로그램을 실행시키면 어떻게 될까? 스택에 위의 형태로 쌓이게 된다. f1()이 실행되며 먼저 쌓이고, 2 3 이 순서대로 들어온다. f3()이 실행이 완료가 되어야 f2()의 동작이..
JavaScript
컴파일러와 인터프리터 컴파일러 언어와 인터프리터 언어, 두 가지 언어에 대해서 살펴보자 컴파일러와 인터프리터에 대한 쉽고 재밌는 영상이 하나 있다! 인터프리터와 컴파일러 (한국어 자막을 켜고 보세요) 우리가 쓰는 소스코드는 컴퓨터가 이해하지 못한다. 그래서 이런 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 번역해주는 것이 컴파일러와 인터프리터 언어이다. 예를 들어, 자바스크립트는 사람이 이해하기 쉬운 형태이지만, 이런 영어 단어?의 집합을 컴퓨터는 이해하지 못한다. 그래서 일정한 규칙을 가지고 컴퓨터가 이해할 수 있게끔 바꾸어주는 것이다! 컴파일러는 무엇일까?우선 컴파일러는 무엇일까? 컴파일러는 프로그램 전체를 스캔하여 명령어를 번역해주는 프로그램을 말한다. 프로그램 전체를 스캔해야하기 때문에..
https://level.goorm.io/exam/194982/%EC%9E%A5%EB%A7%88/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 위 문제를 풀려고하는데, 입력 인터페이스가 너무 생소했다.// Run by Node.jsconst readline = require('readline');(async () => { let rl = readline.createInterface({ input: process.stdin }); for await (const line of rl) { console.log('Hello Goorm! Your input is', line); rl.close(); } process.exit();..
문제https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이전형적인 BFS 문제이지만, 자바스크립트로 풀려니 구현 방식에서 고민이 많이 되었다. 우선 처음 작성한 코드를 살펴보며 자바와 다르게 고민했던 부분들을 정리해보겠다.function solution(maps) { var answer = -1; const N = maps.length; const M = maps[0].length; const dr = [-1,1,0,0]; c..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이우선 순위 큐를 구현해야하는 문제이다. 자바에서는 라이브러리를 불러오면 쉽게 해결되지만, 자바스크립트에서는 직접 구현을 해야한다. 우선 순위 큐를 어떻게 구현할 수 있을까? 우선 순위 큐는 힙 자료 구조를 알면 쉽게 접근해볼 수 있다. 힙은 완전 이진 트리의 일종이다. 특징은 부모 노도의 키 값이 자식 노드의 키 값보다 항상 큰 이진 트리이다. 여기서 힙의 종류는 두 가지가 있다.어려운 것은 아..
문제https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이스택을 구현하는 문제이다. 자바에서는 스택 라이브러리를 불러오면 끝인데, 자바스크립트는 직접 구현해야만 한다. 스택은 아래처럼 구현할 수 있다.class Stack{ constructor(){ this.arr = []; } push(item){ this.arr.push(item); } pop(){ return this.arr.pop..