일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- async/await
- 인터섹션
- 결정 알고리즘
- 리터럴 타입
- TS
- 공변성
- 이분 검색
- 무한 스크롤
- CI/CD
- tailwind
- RTK Query
- 타입 좁히기
- map
- autosize
- 태그된 유니온
- ESlint
- webpack
- SSR
- Promise
- CORS
- useAppDispatch
- 투포인터
- app router
- Cypress
- Jest
- recoil
- dfs
- 호이스팅
- 반공변성
- React
- Today
- Total
목록전체 글 (510)
짧은코딩
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 내 풀이(큐를 생각 못했다ㅠㅠ) from collections import deque n, m = map(int, input().split()) ary = [] for i in range(n): ary.append(list(map(int, input()))) dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] def bfs(x,y): q = deque() q.append((x,y)) while q: x, y = ..
async 함수 async는 function 앞에 위치한다. async function f() { return 1; } f().then(alert); // 1 async를 붙이면 해당 함수는 항상 Promise를 반환한다. Promise가 아닌 값을 반환해도 이행상태의 Promise로 값을 감싸 이행된 Promise가 반환된다. await await는 async 함수 안에서만 동작한다. async function f() { let promise = new Promise((resolve, reject) => { setTimeout(() => resolve("완료!"), 1000) }); let result = await promise; // 프라미스가 이행될 때까지 기다림 (*) alert(result);..
Promise let promise = new Promise(function(resolve, reject) { // executor (제작 코드, '가수') }); new Promise에 전달되는 함수는 excutor라고 부른다. excutor는 new Promise가 만들어질 때, 자동으로 실행된다. resolve와 reject는 js에서 자체 제공하는 콜백이다. executor에선 결과를 즉시 얻든 늦게 얻는 인수로 넘겨준 콜백 중 하나를 반드시 호출해야 한다. resove(vlaue): 일이 성공적으로 끝나면 결과는 value와 함께 호출 reject(error): 에러 발생 시 에러 객체 error와 함께 호출 -Promise는 성공 또는 실패만 한다. let promise = new Promis..
https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 내 풀이(맞음) def binary_search(array, target, start, end): mid = (start + end) // 2 if start > end: return None if target == array[mid]: return mid elif target < array[mid]: return binary_search(array, target, ..
전달만하는 prop가 많이 생기면 이름 바꾸기도 어렵고 코드 작성, 수정에 악영향을 끼친다. 이런 상황을 props가 드릴처럼 땅을 파고 들어간다고 보고 Prop Drilling이라고 한다. => 부모에서 자식으로만 데이터를 전달하는 단방향 데이터 흐름이라서 이런 문제가 생긴다. 1. 모든 데이터를 Provider라는 공격자 역할을 하는 컴포넌트에게 전달 2. Provider는 특별해서 자신의 자손들에게 직통으로 데이터를 줄 수 있다. => Prop Diilling이 없어졌다. 3. 자식 컴포넌트들은 Provider에게 직통으로 데이터를 받는다. 따라서 Provider 아래에 존재하는 모든 컴포넌트를 문맥화에 존재한다. Context -예시 const ThemeContext = React.createCo..
해싱 해싱: 산술적인 연산을 이용하여 키가 있는 위치를 계산하여 찾아가는 검색 방식 해시 함수: 키 값을 원소의 위치로 변환하는 함수 해시 테이블: 해시 함수에 의해 계산된 주소의 위치에 항목을 저장한 표 동일한 해시 주소를 가지면 충돌이 일어난다. 해시 함수 -해시 함수의 조건 해시 함수는 계산이 쉬워야하고 충돌이 적어야한다. 헤시 테이블에 고르게 분포할 수 있어야한다. -중간 제곱 함수 예를 들면 제곱하여 중간 자리 수에 있는 값을 해시 주소로 사용한다. -제산 함수 나머지 연산이다. 10, 7, 77, 9를 각각 8로 나누고 그 나머지를 해시 주소로 사용한다. -승산 함수 키 값 k와 정해진 실수 α를 곱한 결과에서 소수점 이하 부분만을 테이블의 크기 M과 곱하여 그 정수 값을 주소로 사용한다. -..
레드 블랙 트리 1. 루트는 블랙이다. 2. 모든 리프는 블랙이다. => 레드 블랙 트리에서 리프는 맨 밑에 노드가 아닌 맨 밑에 숨겨진 자식 노드, 즉 존재하지 않는 NIL을 의미한다. 3. 노드가 레드이면 그 노드의 자식은 반드시 블랙이다. => 노드가 블랙이면 색은 상관없다. 4. 루트 노드에서 임의의 리프 노드에 이르는 경로에서 만나는 블랙 노드의 수는 모두 같다. 오른쪽 그림처럼 NIL에 갈 때 만나는 블랙 노드 개수가 모두 3개로 통일이다. 레드 블랙 트리 삽입 이진검색트리에서의 삽입과 같지만 삽입된 노드는 반드시 레드로 칠한다. -부모가 블랙 문제 없다. -부모가 레드 문제가 발생한다. => 삽입된 노드의 부모의 형제를 확인한다. case1: 부모의 형제가 빨간색인 경우(recoloring)..
-태그 참고 사이트 https://developer.mozilla.org/ko/docs/Web/HTML/Element HTML 요소 참고서 - HTML: Hypertext Markup Language | MDN 이 페이지는 태그를 사용해 만들 수 있는 모든 HTML 요소의 목록을 제공합니다. developer.mozilla.org -meta 구글에 넷플릭스를 검색하면 이렇게 나온다. 구글이 사이트에서 titel과 description을 가져오는 것이다. meta는 부가적인 정보라는 뜻이다. meta 태그는 두개의 attribute를 갖고 있다. content, name을 가지고 있다. UTF-8이 없으면 사이트 글자가 깨져보일 것이다. -lang 이것을 넣는 이유는 구글, 네이버 같은 검색 엔진들에 도움..
처음으로 js를 통해 무언가 만들어봤다. 아직 초라하지만 이 강의와 챌린지를 기반으로 리엑트를 공부하는 등 탄력을 받고 있다. 다음엔 노마드 코더님 리엑트 영상을 보고 챌린지도 통과하는 것이 목표다.
App 컴포넌트에는 굉장히 많은 상태들이 존재한다. -상태 변화 처리 함수 onCreate: 데이터 생성 onEdit: 데이터 수정 onRemove: 데이터 삭제 이 3개의 상태 변화 로직이 있다. 함수들 안에 data가 많다. 이렇게 컴포넌트의 코드가 길어지고 무거워 지는 것은 좋지 않다. => 따라서 복잡하고 긴 상태 변화 로직을 컴포넌트 밖으로 분리해야한다. useReducer const [state, dispatch] = useReducer(reducer, initialState); 이렇게 있으면 왼쪽 첫번째 인자는 state이다. 그리고 두번째 인자는 상태를 변환시키는 엑션을 발생시키는 함수이다. 오른쪽 첫번째 인자에는 reducer가 있어야한다. dispatch에서 일어난 상태 변화를 redu..