본문 바로가기

분류 전체보기126

자바스크립트 모든 부분 집합(멱집합) 구하기 📌 멱집합 PowerSet? 구할 수 있는 모든 부분 집합의 집합 === 멱집합 "모든 부분집합 모음"이라고 쉽게 생각하자. 예를 들어, [1, 2, 3, 4, 5]와 같은 배열의 멱집합을 구한다고 한다면, 말 그대로 "부분" 집합이니까 각 요소들은 "있다"vs"없다" 라는 2가지 상태를 지닐 수 있다. 1이 있어도 부분집합, 없어도 부분집합이다. (믿기지 않겠지만 빈 배열도 부분집합으로 친다 !) 그래서 2(가지 상태)^5(요소 개수) 32개의 부분집합을 구할 수 있다. 32개의 부분집합을 모두 담은 집합을 멱집합이라고 할 수 있다. 📌 Tree로 구현하기 DFS완전 탐색을 이용해 그려보면, 일정한 패턴을 볼 수 있다. 왼쪽 노드를 선택했을 때 오른쪽 노드는 선택되지 않는다. "있다"와 "없다" 2가지.. 2021. 9. 7.
항공편 검색창 만들면서 useEffect 공부하기 📌 구현 결과 📌 구현 과정 Main.js 📌 2021. 9. 7.
자바스크립트 비동기 프로그래밍 Asynchronous Programming 비동기 프로그래밍 공부 전에 자바스크립트 코드 동작 원리인 실행 컨텍스트 개념부터 잡고 들어가면 좋겠다. 자바스크립트 실행 컨텍스트 Execution Context 뜯어 보기 📌 실행 컨텍스트 공부해야하는 이유 실행 컨텍스트는 자바스크립트 동작 원리를 담고 있는 핵심 개념이다 ⭐⭐⭐ ✔ 자바스크립트가 스코프를 기반으로 식별자와 식별자에 바인딩 된 값을 관 code-designer.tistory.com 📌 자바스크립트가 비동기적으로 작동해야하는 이유 변수를 선언하거나 함수를 호출하면, 자바스크립트에서는 실행 컨텍스트를 생성한다. 이때 생성된 실행 컨텍스트는 실행 컨텍스트 스택 (콜스택)에 push 되고 함수 코드가 실행된다. 함수 코드의 실행이 종료되면 실행 컨텍스트는 실행 컨텍스트 스택에서 pop 되어 .. 2021. 9. 6.
자바스크립트 실행 컨텍스트 Execution Context 뜯어 보기 📌  실행 컨텍스트 공부해야하는 이유 실행 컨텍스트는 자바스크립트 동작 원리를 담고 있는 핵심 개념이다 ⭐⭐⭐ ✔ 자바스크립트가 스코프를 기반으로 식별자와 식별자에 바인딩 된 값을 관리하는 방식✔ 호이스팅이 발생하는 이유✔ 클로저의 동작 방식✔ 태스크 큐와 함께 동작하는 이벤트 헨들러✔ 비동기 처리의 동작 방식 실행 컨텍스트를 이해했을 때, 이 모든 것을 자연스럽게 습득할 수 있다.   📌  실행 컨텍스트execution context 코드가 실행되려면 스코프, 식별자, 코드 실행 순서 등의 관리가 필요하다. ✔ 선언에 의해 생성된 모든 식별자(변수, 함수, 클래스..)들을 스코프를 구분하여 등록하고    상태 변화(식별자에 바인딩된 값의 변화)를 지속적으로 관리해야 한다.✔ 스코프는 중첩 관계에 의.. 2021. 9. 5.
백준 자바스크립트 입력 방식 메모 ● test case (1줄 \n1줄 기준) good morning hello world! ● test case 받아오기 // 줄 바꿈 기준으로 가져오기 const fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); console.log(input); // ['good morning', 'hello world!'] ● test case (여러줄 \n여러줄 기준) case 1 5 1 2 3 4 5 case 2 4 2 3 1 0 0 1 1 1 1 1 0 1 0 1 0 1 1 1 ● test case 받아오기 const solution = (N, data) => { console.log(N); console... 2021. 9. 4.
01 Big O Notation ( in JavaScript ) Udemy | JavaScript Algorithms and Data Structures Masterclass 01 Big O Notation ● Big O Notation 이란 ?? 좋은 코드, 더 나은 코드란 무엇일까? 란 질문을 던졌을 때 우리는 3가지 정도를 고려해 볼 수 있다. 01 기존 코드보다 처리 속도가 더 빠른가? 02 기존 코드보다 메모리를 덜 잡아먹는가? 03 기존 코드보다 로직이 더 직관적인가? 1번 조건을 평가하기 위해 쓰이는 도구가 바로 Big O Notation이다. "시간 복잡도"라고 부르기도 한다. 알고리즘의 수행 시간을 분석할 때 이 시간 복잡도를 사용한다. 수행 시간은 실행 환경에 따라 다르게 측정되므로, 기본 연산의 실행 횟수로 수행 시간을 평가한다. Big O 표기법.. 2021. 9. 3.
if문과 switch문의 성능 차이 ? 둘 중에 뭘 써야 하나 며칠 전 stack 자료 구조를 자바스크립트로 구현하다 깨달은 사실이 몇 가지 있어 글을 남기려 한다. ISA 관점 에서 ... 봤을 때, (궁금증 1) MIPS 에는 (궁금증 2) branch statement 와 jump statement 가 있다고 한다. branch statement는 레지스터 2개를 비교해서 (혹은 레지스터 and 상수 비교) 특정 메모리 번지로 이동하냐 마냐를 결정한다. jump statement는 (비교 없이) 즉시 !! 특정 메모리 번지로 이동한다. if문은 branch statement에 기반을 두고 있고, switch문은 jump statement에 기반을 두고 있다. if문은 조건이 만족하면 실행, 만족하지 않으면 무시한다. (실행 할거여 말거여?) switch문은 입.. 2021. 9. 2.
자료구조 / 알고리즘 공부할 때 유의할 점 📍 공부하면서 스스로한테 지속적으로 던져야하는 질문들 자료구조 ✅ 자료 구조 안에 있는 데이터들의 순서가 보장이 되는가? ✅ 중복된 데이터가 들어갈 수 있는가? ✅ 검색할 때 얼마나 효율적인가? ✅ 내가 원하는 기능을 수행하기 위해 데이터를 수정해야할 때 얼마나 효율적인가? 알고리즘 ✅ Input(매개 변수)의 사이즈가 커질수록 O(n)은 어떻게 변화하는가? ✅ 작성한 코드의 시간 복잡도와 공간 복잡도는 어떠한가? ✅ 선택한 자료구조가 해당 알고리즘 문제를 풀기에 적절한가? 문제 푸는 skill 01 UNDERSTAND THE PROBLEM 02 CONCRETE EXAMPLES 03 BREAK IT DOWN 04 SOLVE OR SIMPLIFY 2021. 9. 1.
자바스크립트 돔 DOM 조작 연습 📌 JS가 받아오는 데이터 요약 더보기 const menu = [ { type: 'group', name: '음료', children: [ { type: 'group', name: '콜드 브루', children: [ { type: 'item', name: '나이트로 콜드 브루' }, { type: 'item', name: '돌체 콜드 브루' }, { type: 'item', name: '제주 비자림 콜드 브루' }, { type: 'item', name: '콜드 브루' }, ], }, { type: 'group', name: '프라푸치노', children: [ { type: 'item', name: '애플 쿠키 크림 프라푸치노' }, { type: 'item', name: '더블 에스프레소 칩 프라푸.. 2021. 8. 31.