> 기초
-
TIL-2024.02.28 - 알고리즘 - 다이나믹 프로그래밍> 기초/알고리즘 2024. 2. 28. 21:27
------- 다이나믹 프로그래밍 - 복잡한 문제를 여러 개의 작은 하위 문제로 나누어 해결하는 방법 - 각 하위 문제의 해결책을 저장하고 재사용함으로써 전체 문제의 해결책을 효율적으로 찾아냅니다 - 일반적으로, Bottom Up이 더 시간 효율적 핵심 원리: 중복된 하위 문제(Overlapping Subproblems): - 주어진 문제가 같은 작은 문제를 반복적으로 해결해야 할 때, 이를 중복된 하위 문제라 칭함 - 이러한 문제의 해결책을 한 번만 계산하고, 결과를 저장한 후 필요할 때마다 재사용함으로써 계산 시간을 대폭 감소 최적 부분 구조(Optimal Substructure): - 큰 문제의 최적 해결책이 그 문제의 하위 문제의 최적 해결책에서 파생될 수 있을 때, 이를 최적 부분 구조라 칭함 ..
-
TIL-2024.02.27 - JS - 실행 컨텍스트-4. 렉시컬 환경-3> 기초/Javascript 2024. 2. 27. 22:39
2.1.2 선언적 환경 레코드 생성 - let, const 전역 변수는 선언적 환경 레코드에 등록되고 관리. - let, const 로 선언한 전역 변수는 전역 객체의 프로퍼티가 되지않고, 개념적인 블록 내에 존재하게 되는데. 이를 전역 환경의 선언적 환경 레코드라 함. 2.2. this 바인딩 - 전역 환경 레코드의 내부 슬롯에 this가 바인딩. - 전역 코드에서 this 는 전역 객체를 가리키므로 전역 환경 레코드의 내부 슬롯에는 전역 객체가 바인딩. - 전역 코드에서 this를 참조하면 전역 환경 레코드의 내부슬록에 바인딩되어있는 객체가 반환. 2.3. 외부 렉시컬 환경에 대한 참조 결정 (상위 스코프와의 스코프 체인) - 외부 렉시컬 환경에 대한 참조는 현재 평가 중인 소스코드를 포함함는 외부 ..
-
TIL-2024.02.26 - JS - 실행 컨텍스트-3. 렉시컬 환경-2> 기초/Javascript 2024. 2. 26. 22:27
var x = 1; const y = 2; function foo(a){ var x = 3; const y = 4; function bar(b){ const z = 5; console.log(a + b + x + y + z); // 20 + 10 + 3 + 2 + 5 } bar(10); } foo(20); // 42 ------- 실행 컨텍스트의 생성과 식별자 검색 과정 ? (실행 컨텍스트 생성 및 코드 실행 결과 관리, 실행 컨텍스트를 통한 식별자 검색) 과정/순서: 1. 전역 실행 컨텍스트 생성 2. 전역 렉시컬 환경 생성 2.1. 전역 환경 레코드 생성 2.1.1. 객체 환경 레코드 생성 2.1.2. 선언적 환경 레코드 생성 2.2. this 바인딩 2.3. 외부 렉시컬 환경에 대한 참조 결정 (상..
-
TIL-2024.02.25 - JS - MAP과 예제> 기초/Javascript 2024. 2. 25. 22:55
------- map 객체와의 차이: - Map 객체는 키와 값의 쌍으로 이뤄진 컬렉션. 구분 객체 Map 객체 키로 사용할 수 있는 값 문자열 | 심벌 값 객체를 포함한 모든 값 이터러블 X O 요소 갯수 확인 Object.keys(obj).length map.size 생성: // 기본 생성 const map1 = new Map(['key1','value1'], ['key2','value2']) console.log(map1) // Map(2) {'key1' => value1','key2' => value2'} // 중복된 키 > 덮어써짐 const map1 = new Map(['key1','value1'], ['key1','value2']) console.log(map1) // Map(1) {'key..
-
TIL-2024.02.23 - JS - 실행 컨텍스트-2. 실행 컨텍스트 스택과 렉시컬 환경> 기초/Javascript 2024. 2. 23. 22:28
------- 실행 컨텍스트 스택 ? 설명: 코드의 실행 순서를 스택구조(LIFO)로 관리 실행에 따라 실행 컨텍스트가 추가되고 제거된다. 예제: const x = 1; function foo() { const y =2; function bar(){ const z = 3; console.log(x + y + z) } bar(); } foo(); // 6 전역 코드의 평가와 실행: - 전역 코드를 평가해 전역 실행 컨텍스트를 생성하고 실행 컨텍스트 스택에 푸시 - 전역 변수 X 와 전역 함수 foo가 전역 실행 컨텍스트에 등록 - 이후 전역 코드가 실행되기 시작하여, 전역 변수 X에 값이 할당되고 전역 함수 foo가 호출 foo 함수 코드의 평가와 실행 - 전역 함수 foo가 호출되면 전역 코드의 실행은 ..
-
TIL-2024.02.22 - 알고리즘 - 보물지도과 비트 연산> 기초/알고리즘 2024. 2. 22. 21:54
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 1차 코드 const solution = (n, arr1, arr2) => { const toStringTwo = (n, arr) => { const returnArr = []; for (let i = 0; i < arr.length; i++) { const tempArrLength = arr[i].toString(2).length; const tempString = tempArrLe..
-
TIL-2024.02.21 - JS - 실행 컨텍스트-1> 기초/Javascript 2024. 2. 21. 21:06
------- 실행 컨텍스트: 정의: 실행 컨텍스트는 소스코드를 실행하는 필요한 환경을 제공하고 코드의 실행 결과를 실제로 관리하는 영역 식별자를 등록하고 관리하는 스코프와 코드 실행 순서 관리를 구현한 내부 메커니즘으로, 모든 코드는 이를 통해 실행되고 관리 식별자와 스코프는 실행 컨텍스트의 렉시컬 환경으로 관리 && 코드 실행 순서는 실행 컨텍스트 스택으로 관리 유형: 전역 실행 컨텍스트(Global Execution Context): 코드가 처음 실행될 때 생성되는 실행 컨텍스트입니다. 전역 스코프와 전역 변수, 전역 함수를 관리합니다. 함수 실행 컨텍스트(Function Execution Context): 함수가 호출될 때마다 생성됩니다. 각 함수 호출에 대해 고유의 실행 컨텍스트가 생성되며, 해..