일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- webpack
- autosize
- 공변성
- recoil
- 리터럴 타입
- SSR
- CORS
- TS
- 호이스팅
- useAppDispatch
- 인터섹션
- dfs
- 투포인터
- ESlint
- RTK Query
- 태그된 유니온
- Cypress
- tailwind
- app router
- Promise
- 타입 좁히기
- CI/CD
- 무한 스크롤
- 결정 알고리즘
- Jest
- 이분 검색
- async/await
- map
- 반공변성
- React
- Today
- Total
목록전체 글 (510)
짧은코딩
완전 그래프 각 정점에서 다른 모든 정점을 연결해 최대로 많은 간선 수를 가진 그래프 무방향 그래프 최대 간선 수: n(n-1)/2개 방향 그래프 최대 간선 수: n(n-1)개 그래프 구현 -인접 행렬 무방향 그래프 방향 그래프 -인접 리스트 무방향 그래프 방향 그래프 그래프 순회 -깊이 우선 탐색, DFS 시작 정점의 한 방향으로 갈 수 있는 경로가 있는 곳까지 깊이를 탐색해 가는 법 가장 마지막에 만났던 갈림길 간선의 정점으로 가장 먼저 되돌아가서 다시 깊이 우선 탐색을 반복해야 하므로 후입선출 구조의 스택 사용 1. A를 시작으로 깊이 우선 탐색 시작 스택: Null 2. A에서 방문하지 않은 정점 B, C가 있어서 A를 스택에 push, 이 중에서 오름차순에 따라 B를 선택 스택: A 3. B에 ..
개발자는 가능한 간결하고 읽기 쉽게 코드를 작성해야 한다. 중괄호 -코드가 짧으면 중괄호 없이 한 줄에 써도 괜찮다. if (n < 0) alert(`Power ${n} is not supported`); -코드 블록 사용 if (n < 0) { alert(`Power ${n} is not supported`); } 대부분의 코드는 코드 블록을 사용하는 것이 가독성이 좋다. 가로 길이 코드의 가로 길이가 길어지면 여러 줄로 나눠서 작성하는게 좋다. // 백틱(`)을 사용하면 문자열을 여러 줄로 쉽게 나눌 수 있습니다. let str = ` ECMA International's TC39 is a group of JavaScript developers, implementers, academics, and m..
디버깅은 스크립트 내 에러를 검출해 제거하는 과정을 의미한다. 디버깅 툴을 사용하면 디버깅이 쉬워지고 단계마다 어떤 일이 일어나는지 코드 단위로 추적할 수 있다. Sources 패널 1. 파일 탐생 영역: 맨 왼쪽이고 페이지를 구성하는데 쓰인 모든 리소스를 트리 형태로 보여준다. Chrom 익스텐션이 나타날 수도 있다. 2. 코드 에디터 영역: 리소스 영역에서 선택한 파일의 소스 코드를 보여주고 편집도 가능하다. 중단점을 선택할 수 있다. 3. 자바스크립트 디버깅 영역: 디버깅에 관련한 기능을 제공 debugger 명령어 function hello(name) { let phrase = `Hello, ${name}!`; debugger; // 중단점을 설정하기 귀찮은데 해당 줄에서 실행을 재개하고 싶을 때..
문제 풀이(이해가 안되서 보고 풀음) # N, M을 공백을 기준으로 구분하여 입력받기 n, m = map(int, input().split()) # 방문한 위치를 저장하기 위한 맵을 생성하여 0으로 초기화 d = [[0] * m for _ in range(n)] # 현재 캐릭터의 X 좌표, Y 좌표, 방향을 입력받기 x, y, direction = map(int, input().split()) d[x][y] = 1 # 현재 좌표 방문 처리 # 전체 맵 정보를 입력받기 array = [] for i in range(n): array.append(list(map(int, input().split()))) # 북, 동, 남, 서 방향 정의 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] #..
nullish 병합 연산자 '??' -a ?? b 만약 a가 null, undefined 둘 다 아니면 a이고, null이나 undefined이면 b이다. =>??를 사용하면 값이 할당된 변수를 빠르게 찾을 수 있다. 대부분 변수에 기본값을 할당하는 용도로 사용한다. -x = a ?? b x = (a !== null && a !== undefined) ? a : b; 이 코드는 x = a ?? b와 같은 코드이다. -사용자가 아무런 정보도 입력하지 않는 케이스 let firstName = null; let lastName = null; let nickName = "바이올렛"; // null이나 undefined가 아닌 첫 번째 피연산자 alert(firstName ?? lastName ?? nickNam..
Card title Some quick example text to build on the card title and make up the bulk of the card's content. Go somewhere Card title Some quick example text to build on the card title and make up the bulk of the card's content. Go somewhere Card title Some quick example text to build on the card title and make up the bulk of the card's content. Go somewhere 이 코드에서 사진의 크기를 통일 시키려고 했다. -CSS img { wid..
내 풀이(처음에 틀렸는데 해설 보고 수정) x = input() row = int(x[1]) column = int(ord(x[0])) - int(ord('a')) + 1 count = 0 ary = [(2, 1), (2, -1), (-2, 10), (-2, -1), (1, 2), (-1, 2), (1, -2), (-1, -2)] for i in ary: r = row + i[0] c = column + i[1] if r >= 1 and r = 1 and c
if문 let year = prompt('ECMAScript-2015 명세는 몇 년도에 출판되었을까요?', ''); if (year == 2015) alert( '정답입니다!' ); if문을 활용하여 질문을 할 수 있다. -조건부 연산자 '?' let accessAllowed; let age = prompt('나이를 입력해 주세요.', ''); if (age > 18) { accessAllowed = true; } else { accessAllowed = false; } 나이가 18살 초과하면 true를 반환하는 코드가 있다. 이런 코드를 간략하게 해주는 것이 조건부 연산자이다. let accessAllowed = (age > 18) ? true : false; 위 코드를 조건부 연산자를 활용하면 이렇게..
풀이법 이 문제는 모든 시각의 경우를 하나씩 세서 풀 수 있는 문제이다. 왜냐면 하루는 24 * 60 * 60이라 86,400초이다. 즉 경우의 수가 100,000개가 되지 않아 하나씩 세도 시간 제한 2초 안에 문제를 풀 수 있다. 이런 유형은 가능한 경우의 수를 모두 검색하는 방법인 완전 탐색(Brute Forcing) 유형으로 분류되기도 한다. 완전 탐색 알고리즘은 주로 전체 데이터 수가 100만 개 이하일 때 사용하면 적절하다. 교재 및 내 풀이 # H를 입력받기 h = int(input()) count = 0 for i in range(h + 1): for j in range(60): for k in range(60): # 매 시각 안에 '3'이 포함되어 있다면 카운트 증가 if '3' in s..
내 풀이 N = int(input()) dis = list(input().split()) cur = [1,1] for i in dis: if i == "L": cur[1] -= 1 if cur[1] N: cur[1] -= 1 elif i == "U": cur[0] -= 1 if cur[0] N: cur[0] -= 1 print('%d %d'%(cur[0], cur[1])) 현재 위치를 cur 리스트로 만들어서 문제를 풀었다. 각 움직임마다 먼저 수행을 하고 만약 범위가 벗어나면 다시 원상복구 시키는 방법으로 구현했다. 교재..