![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/pV0Z0/btrfqEilXYe/pSG1U8VFTg7y6SKoYKLRz0/img.png)
실행 컨텍스트 실행 컨텍스트는 소스코드를 실행하는 데 필요한 환경을 제공하고 코드의 실행 결과를 실제로 관리하는 영역이다. 식별자를 등록하고 관리하는 스코프와 코드 실행 순서 관리를 구현한 내부 메커니즘으로, 모든 코드는 실행 컨텍스트를 통해 실행되고 관리된다. 전역 코드 함수 코드 eval 코드 모듈 코드 소스코드의 평가와 실행 모든 소스코드는 실행에 앞서 평가 과정을 거치며 코드를 실행하기 위한 준비를 한다. 평가 과정 소스코드의 평가 실행 컨텍스트를 생성하고 변수, 함수 등의 선언문만 먼저 실행하여 생성된 변수나 함수 식별자를 키로 실행 컨텍스트가 관리하는 스코프에 등록한다. 소스코드의 실행 런타임이 시작되고 이때 소스코드 실행에 필요한 정보를 실행 컨텍스트가 관리하는 스코프에서 검색해서 취득한다...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/lU0Kn/btrfsewSQvL/7fKJKXxPqdVkkKvBnoQq7k/img.png)
this this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. this는 자바스크립트 엔진에 의해 암묵적으로 생성되며, 코드 어디서든 참조할 수 있다. 함수를 호출하면 arguments 객체와 this가 암묵적으로 함수 내부에 전달된다. 함수 호출 방식과 this 바인딩 this 바인딩은 함수 호출 방식, 즉 함수가 어떻게 호출되었는지에 따라 동적으로 결정된다. 🛑함수 호출 방식 일반 함수 호출 메서드 호출 생성자 함수 호출 Function.prototype.apply/call/bind 메서드에 의한 간접 호출 1️⃣ 일반 함수 호출 기본적으로 this에는 전역 객체가 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/byRhHO/btrfuKPgIe2/JxtKfFi1LjfsW0meKbckvK/img.png)
표준 빌트인 객체 ECMAScript 사양에 정의된 객체를 말하며, 애플리케이션 전역의 공통 기능을 제공한다. 표준 빌트인 객체는 전역 객체의 프로퍼티로서 제공된다. 따라서 별도의 선언 없이 전역 변수처럼 언제나 참조할 수 있다. 원시값과 래퍼 객체 원시값은 객체가 아니므로 프로퍼티나 메서드를 가질 수 없는데도 원시값인 문자열이 마치 객체처럼 동작한다. 이는 원시값인 문자열 숫자, 불리언 값의 경우 이들 원시값에 대해 마치 객체처럼 마침표 표기법으로 접근하면 자바스크립트 엔진이 일시적으로 원시값을 연관된 객체로 변환해 주기 때문이다. const str = 'hello'; console.log(str.length); // 5 console.log(str.toUpperCase()); // HELLO cons..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ux8it/btrfp2DrRSf/RG6uOQMo3lkgC2yeRcu4AK/img.png)
strict mode 자바스크립트 언어의 문법을 좀 더 엄격히 적용하여, 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 에러를 발생시킨다. strict mode 적용 전역의 선두 또는 함수 몸체의 선두에 'use strict'; 를 추가한다. 1️⃣ 'use strict'; // 전역의 선두에 추가 function foo() { x = 10; // ReferenceError: x is not defined } foo(); 전역의 선두에 추가하면 스크립트 전체에 적용된다. 2️⃣ function foo() { x = 10; // 에러를 발생시키지 않는다. 'use strict'; } foo(); 코드의 선두에 위치시키지 않을 시 제대로 동작하..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bwp2aZ/btrfw5exF4x/DjAgrjLPUTwka8ZL8LBMD0/img.png)
https://www.acmicpc.net/problem/14676 14676번: 영우는 사기꾼? 프로그램의 입력은 표준 입력으로 받는다. 입력의 첫 줄에는 건물 종류의 개수 N, 건물 사이 관계의 개수 M, 영우의 게임 정보의 개수 K가 주어진다.(1 ≤ N, M, K ≤ 100,000) 다음 줄부터 M줄에 걸쳐 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 구현 그래프 이론 위상 정렬 ⊙ 문제 접근 과정 1️⃣ graph[i].append(j), indegree[j]+=1 m만큼 반복 2️⃣ 건물을 K번 짓거나 파괴 3️⃣ 1은 건설, 2는 파괴 1일 시, 선행 건물이 있는지 판별 2일 시, 건물이 지어졌는지 확인 ⊙ 문제 풀이 import sys N, M,..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/GXSRT/btrfqCRXmZ2/xixt7wTaJ2ssc2Y9FiwN31/img.png)
https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차_복서 정렬하기 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr ⊙ 문제 ⊙ 제한사항 ⊙ 입출력 예 ⊙ 입출력 예 설명 ⊙ 문제 접근 과정 1️⃣ info란 배열을 먼저 만들어줬다. 2️⃣ info 배열 안에 인자를 [선수 번호, 몸무게, 승률, 나보다 무거운 복서 이긴 횟수]로 가져갔다. 3️⃣ lamda를 활용하여 승률 -> 나보다 무거운 복서 이긴 횟수 -> 몸무게 -> 선..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bhrrtj/btrfotHwnnv/MbqMG6vVOSUg90hjjvd7Uk/img.png)
https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 구현 문자열 ⊙ 문제 접근 과정 띄어쓰기를 기준으로 배열에 추가해줬다. 그렇지만 괄호 안에 있는 띄어쓰기는 무시해야 한다. flag를 이용하여 괄호를 판별 해줬다. 나머지 코드는 전부 직접 구현했다. 괄호 안에 있는 텍스트는 parentheses 문자열 안에 괄호 밖에 있는 텍스트는 message 문자열 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bSXdhO/btrfoGs0PyI/juNi2kiPnHitKywCozW8tk/img.png)
연습문제 1. 메모리 가져오기 정책 중, 사용자가 요구할 때, 해당 페이지를 메모리로 가져오는 방식은 무엇인가? 요구 페이징 2. 요구 페이징과 반대로 앞으로 필요할 것이라고 예상되는 페이지를 미리 가져오는 방식은 무엇인가? 미리 가져오기(캐시) 3. 페이지 테이블 엔트리의 구조 중, 페이지가 실제 메모리에 있는지 나타내는 비트는 무엇인가? 유효 비트 4. 페이지 테이블 엔트리의 구조 중, 페이지가 메모리에 올라온 후 사용한 적이 있는지 알려주는 비트는 무엇인가? 접근 비트 5. 페이지 테이블 엔트리의 구조 중, 페이지가 메모리에 올라온 후 데이터의 변경이 있었는지 알려주는 비트는 무엇인가? 변경 비트 6. 프로세스가 페이지를 요청했을 때 해당 페이지가 메모리에 없는 상황을 무엇이라 하는가? 페이지 부재..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bePmOv/btrfpBq4I0j/aN1OZXh9LXsz1Mc7KziB3K/img.png)
요구 페이징 사용자가 요구할 때 해당 페이지를 메모리로 가져오는 것을 말한다. 요구 페이징을 사용하면 메모리의 절약, 메모리의 효율적 관리, 프로세스의 응답 속도 향상 등의 효과를 볼 수 있다. ➕ 캐시 캐시는 앞으로 필요할 것이라고 예상되는 부분을 고속의 캐시 메모리에 가져다 놓음으로써 시스템의 성능을 향상한다. ➕ 가상 메모리의 크기 물리 메모리 + 스왑 영역 페이지 테이블 엔트리의 구조 가상 메모리 시스템에서 사용자 프로세스는 물리 메모리와 스왑 영역 중 한 곳에 있다. ⭕ 페이지가 스왑 영역에 있는 경우 요구 페이징으로 인해 처음부터 물리 메모리에 올라가지 못한 경우 메모리가 꽉 차서 스왑 영역으로 옮겨 온 경우 ❗ ❗ 두 가지 경우 중 어떠한 경우라도 페이지 테이블에는 페이지가 메모리에 있는지,..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/KUUh5/btrfdXVTLxD/lRRj0FZRnOPIvfGDlnuzKk/img.png)
https://www.acmicpc.net/problem/4889 4889번: 안정적인 문자열 입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 자료 구조 문자열 스택 ⊙ 문제 접근 과정 스택을 활용하여 문제에 접근하였다. 1️⃣ 문자 중 '-'가 들어오면 바로 종료 2️⃣ 문자가 "{"이면 스택에 추가 3️⃣ "}"이고 스택에 값이 있다면 pop() 4️⃣ "}"이고 값이 없다면 count up 그리고 "{" 추가 5️⃣ 마지막에 결괏값 count+ (스택의 수)//2 출력..
- Total
- Today
- Yesterday
- 파이썬
- 정렬
- 쉽게배우는
- 자바
- JS
- OS
- BFS
- 백준
- 운영체제
- java
- 해답
- CPP
- 자바스크립트
- 풀이
- 연습문제
- 쉽게배우는자바프로그래밍
- Python
- 정리
- 우종정
- 알고리즘
- 쉽게 배우는 자바 프로그래밍
- 답
- 프로그래머스
- py
- 구현
- C++
- 정답
- 문자열
- Web
- 그리디
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |