본문 바로가기

전체 글109

Context API가 있는데 Redux는 왜 써야할까? Context API는 단점이 있다. 1. 복잡함 Context API는 프로젝트의 규모가 커지면 커질수록 ContextProvider 컴포넌트가 아주 많이 nesting 된다. ... 2024. 1. 11.
모던 자바스크립트 Deep Dive - 스코프 13장 스코프 스코프란? var 키워드로 선언한 변수와 let 또는 const 키워드로 선언한 변수의 스코프는 다르게 동작한다. 스코프는 변수 그리고 함수와 깊은 관련이 있다. 함수에서 매개변수는 함수 몸체 내부에서만 참조할 수 있다. 매개변수의 스코프가 함수 몸체 내부로 한정되기 때문이다. function add(x, y) { console.log(x, y); //2, 5 return x + y; } add(2, 5); // 매개변수 x, y는 함수 몸체 내부에서만 참조할 수 있다. // 그래서 x, y를 쓰면 에러가 나는 것이다. console.log(x, y); // ReferenceError: x is not defined 모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위.. 2024. 1. 8.
모던 자바스크립트 Deep Dive - 4.4장 4.4장 변수 선언의 실행 시점과 변수 호이스팅 console.log(score); var score; 위 예제를 보면 console.log가 실행되는 시점에는 아직 score 변수의 선언이 실행되지 않았으므로 참조에러가 발생할 것처럼 보인다. 하지만 그렇지 않고 undefined가 출력된다. 그 이유는 변수 선언이 소스코드가 한 줄씩 순차적으로 실행되는 시점, 즉 런타임이 아니라 그 이전 단계에서 먼저 실행되기 때문이다. 자바스크립트 엔진은 소스코드를 한 줄씩 순차적으로 실행하기 전에 평가 과정을 거치면서 소스코드 실행 준비를 한다. 이러한 평가 과정에서 변수 선언을 포함한 모든 선언문(변수 선언문, 함수 선언문 등)을 먼저 실행한다. 평가 과정이 끝나면 비로소 모든 선언문을 제외하고 소스코드를 한 줄.. 2024. 1. 7.
[C++] 백준 1012 유기농 배추 #include using namespace std; const int dy[4]={-1, 0, 1, 0}; const int dx[4]={0, 1, 0, -1}; int t, m, n, k, a[52][52], x, y; int visited[52][52], cnt, ret[3]; void dfs(int y, int x){ visited[y][x] = 1; for(int i=0; i> t; while(t--){ cnt=0; fill(&a[0][0], &a[0][0]+52*52, 0); fill(&visited[0][0], &visited[0][0]+52*52, 0); cin >> m >> n >> k; for(int i=0; i> x >> y; a[y][x] = 1; } for(int i=0; i 2023. 7. 31.
[C++] 백준 2178 미로탐색 #include using namespace std; int n, m; string s; int a[104][104]; int visited[104][104]; int y, x, c, d; const int dy[] = {-1, 0, 1, 0}; const int dx[] = {0, 1, 0, -1}; void bfs(int y, int x){ visited[y][x] = 1; queue q; q.push({y, x}); while(q.size()){ tie(c, d) = q.front(); q.pop(); for(int i=0; i> n >> m; for(int i=0; i> s; for(int j=0; j 2023. 7. 30.
[C++] 백준 2606 바이러스 #include using namespace std; int n, m; vector adj[101]; int a, b; int visited[101]; int cnt; void dfs(int here){ visited[here] = 1; cnt++; for(int there : adj[here]){ if(visited[there]) continue; dfs(there); } return; } int main(){ cin >> n; cin >> m; for(int i=0; i> a >> b; adj[a].push_back(b); adj[b].push_back(a); } dfs(1); cout 2023. 7. 29.