정리(4)
-
Scope란?
Scope란? Scope는 직역하면 "범위"라는 뜻입니다. JavaScript 에서 Scope(스코프)는 변수에 접근할 수 있는 범위를 말합니다. 식별자(변수)를 찾기 위한 규칙이라고도 합니다. var x = 'global'; function foo () { var x = 'function scope'; console.log(x); } foo(); // ? console.log(x); // ? 위 예제에서 x가 두번 선언되었는데, JavaScript는 각 x가 어떤 값을 가지는지 어떻게 구별할 수 있을까요? 위 예제에서 전역에 선언된 변수 x는 어디에든 참조할 수 있습니다. 하지만 함수 foo 내에서 선어도니 변수 x는 함수 foo 내부에서만 참조할 수 있고, 외부에서는 참조할 수 없습니다. 이러한 규칙..
2023.09.04 -
2.2 이분 탐색 (Binary Search)
이분탐색이란? 이분탐색은 정렬되어 있는 배열에서 사용 가능한 탐색 방법으로, 탐색 범위를 매번 반으로 쪼개 나가며 탐색하는 방법을 얘기합니다. 일반적인 탐색 방법과 비교하기 위해 다음과 같은 문제를 예시로 들어봅시다. 1~N 사이의 자연수로 이루어진 길이가 N인 수열이 있습니다. 이 수열에서 1 이상 N 이하의 정수 K는 몇 번째에 위치해 있는지 구하고자 합니다. 이를 완전탐색으로 해결하면 1번째 값부터 N번째 값까지 일일이 확인해보는 O(N)의 방법이 있습니다. 하지만 N이 100,000 이상 혹은 더욱 커지면 비효율적으로 동작하므로 더욱 빠르게 동작하는 알고리즘이 필요합니다. 만약 수열이 오름차순으로 정렬되어 있다면 이분탐색이라는 알고리즘을 적용할 수 있고, 이의 시간복잡도는 O(logN)입니다. 이..
2023.09.02 -
1. javascript 질문과 답안 (1)
1. Callback과 Promise의 차이점 2. 콜백지옥 해결 방법 Callback을 사용한 비동기 처리 자바스크립트에는 setTimeout() 이라는 대표적인 내장 비동기 함수가 있다. setTimeout()은 두 개의 매개 변수를 받는데, 첫번째는 실행할 작업 내용을 담은 콜백 함수이고, 두 번째는 이 콜백 함수를 수행하기 전에 기다리는 밀리초 단위 시간이다. 즉, setTimeout() 함수는 두번째 인자로 들어온 시간만큼 기다린 후에 첫 번째 인자로 들어온 콜백 함수를 실행한다. function async(callback) { setTimeout(() => { callback("waited 1 sec."); }, 1000); } async(function (msg) { console.log(m..
2023.01.10 -
개인적인 DP 문제 풀이법 정리
1. 경우의 수일 경우 1부터 차근히 경우의 수를 구하고 수식을 찾는다. 경우의 수가 변하는 분기를 기준으로 리스트에 값을 넣고 점화식을 이용하여 문제를 푼다. 2. 최적의 값 혹은 해를 찾는 경우, 각 인덱스 값에 현재 가장 최적인 값을 찾는 식을 찾아야 한다. 일단 모든 리스트를 최소의 최적 값으로 초기화한다. 이후 작은 값부터 최적의 값을 채우는 경우를 찾아야 한다. 보통 단계로 쪼개져 비교하는 경우와 배열 중 가장 긴 무언가를 찾는 경우, 혹은 리스트를 가장 큰 값 혹은 작은 값으로 유도하는 경우가 있다. 이를 위해서 쪼개는 경우는 쪼개진 경우에서 각각 최적의 값을 채우고 반복되서 비교되는 식을 세우면 어느 정도 해결이 된다. (계단 오르기) 가장 긴 무언가를 찾는 경우는 각 인덱스의 값과 인덱스..
2023.01.05