들어가며 브라우저를 위한 스크립팅 언어로 만들어진 자바스크립트의 처음 모습과 지금의 모습은 많이 달라졌습니다.처음 나왔을 당시에는 자바스크립트를 이용하여 수십 줄 이상의 코드를 짜는 일도 많지 않았지만, 점차 유명세를 타게 되며 API를 확장하고 코드 줄 수가 많아짐에 따라 실행 엔진을 최적화하는 작업이 이루어졌습니다. 첫 자바스크립트의 시작은 인터프리터 언어였습니다. 하지만 지금은 컴파일러의 특성도 동시에 갖추고 있습니다. 정확히 무엇을 기점으로 변화하게 된 것일까요? 그것은 바로 V8 엔진입니다. V8 엔진? V8 엔진은 Google 사의 오픈소스로 대중적으로 많이 사용되는 자바스크립트 엔진입니다. Node JS Runtime과 Chrome Browser 환경에서 사용되고 있습니다. 자바스크립트..
https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr본 포스팅에서 다루는 문제는 위 프로그래머스 링크를 통하여 문제 확인 및 풀이가 가능합니다! 1. 문제 풀이 본 문제는 동적 계획법(Dynamic Programming)으로 풀이 가능한 문제들 중 가장 베이직한 경우로 볼 수 있습니다. 효진이가 n칸의 계단을 오르는 방법의 총 가짓수를 bottom-up 방식으로 구하는 것이 문제 풀이에서 가장 중요한 포인트입니다. 또한, 동적 계획법을 풀이할 때 가장..
https://school.programmers.co.kr/learn/courses/30/lessons/120837 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr본 포스팅에서 다루는 문제는 위 프로그래머스 링크를 통하여 문제 확인 및 풀이가 가능합니다! 1. 문제 풀이 탐욕(Greedy) 알고리즘을 사용하여 풀이하는 문제 중 가장 베이직한 문제입니다. 사냥감의 체력(hp)에 딱 맞게 병력을 내보냄과 동시에 가장 적은 수로 구성해야 합니다. 장군개미, 병정개미, 일개미의 공격력이 각각 5, 3, 1이기 때문에 장군개미 > 병정개미 > 일개미 순으로 가능한 많..
https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr본 포스팅에서 다루는 문제는 위 프로그래머스 링크를 통하여 문제 확인 및 풀이가 가능합니다! 1. 문제 풀이 문제에서 제시한 것처럼 단순하게 서로 다른 인덱스에 있는 두 개의 수를 뽑아서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하기만 하면 되는 간단한 문제입니다. 신경써야 할 부분은 서로 다른 인덱스에 있는 두 개의 수를 뽑아서 나온 수가 중..
자바스크립트에서 숫자를 다루거나 연산을 하다보면 NaN 값을 가끔 마주할 때가 있습니다. NaN은 not-a-number의 약자로 자바스크립트에서 '산술 연산 불가'의 값임을 표현할 때 사용됩니다.우리가 자바스크립트를 사용하면서 NaN을 접하게 되는 상황들을 몇 가지 알아보면 다음과 같습니다.// 문자열을 숫자로 변환할 수 없으므로 NaN을 반환한다let x = 'Jiwon';console.log(+x); // NaN// undefined는 숫자로 타입 변환되지 않는다+undefined; // NaN1 + undefined; // NaN0 / 0; // NaN 이렇게 NaN 값이 반환되었을 때 isNaN 함수를 사용하여 해결할 수 있으며 isNaN은 매개변수가 숫자인지 검사하는 함수입니다.isNaN(v..
https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본 포스팅에서 다루는 문제는 위 프로그래머스 링크를 통하여 문제 확인 및 풀이가 가능합니다! 1. 문제 풀이 이 문제에서는 '문제에서 정의한 이진 변환'이 무엇이고 이를 구현하기 위하여 어떤 메서드들이 필요한 지를 아는 것이 중요한 문제입니다. 본 문제에서의 문자열 x에 대한 이진 변환은 아래와 같이 정의합니다. x의 모든 0을 제거 x의 길이를 c라고 할때, c를 이진법으로 표현한 문자열로 변환..
https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본 포스팅에서 다루는 문제는 위 프로그래머스 링크를 통하여 문제 확인 및 풀이가 가능합니다! 1. 문제 풀이 문제 설명 자체는 쉬운 문제입니다. 길이가 같은 두 배열이 주어지고 배열에서 각각 하나의 원소를 뽑아 곱한 뒤 더한 값이 최소가 되도록 하는 것이 목표이며 이 최솟값을 반환하는 것이 문제의 전부입니다. 곱 연산의 성질을 제대로 이해하고 있다면 각 원소에서 뽑아야 하는 값은 쉽게 알 수 있습..
https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본 포스팅에서 다루는 문제는 위 프로그래머스 링크를 통하여 문제 확인 및 풀이가 가능합니다! 1. 문제 풀이 문제 설명 자체는 쉬운 문제입니다. 선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어집니다. 즉 우리는 배열 players의 원소들의 위치를 swap하여 관리하는 것이 전부라고 볼 수 있..