일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 해시 테이블
- 구현
- 누적 합
- DP
- JavaScript
- 애드 혹
- 수학
- DFS
- 그래프
- 이분 탐색
- 문자열
- 플로이드-워셜
- boj
- 슬라이딩 윈도우
- 2357
- SSAFY
- 투 포인터
- BFS
- 그리디
- 세그먼트 트리
- 에라토스테네스의 체
- 정수론
- 모던 JavaScript 튜토리얼
- 13164
- 정렬
- 맵
- 트리
- Python
- 싸피
- 브루트포스
- Today
- Total
목록전체 글 (271)
흙금이네 블로그
피연산자는 연산자가 연산을 수행하는 대상으로, 인수라고 불리기도 한다. 단항 연산자는 피연산자를 하나만 받는 연산자이고, 이항 연산자는 두 개의 피연산자를 받는 연산자다. 단항 마이너스 연산자와 이항 마이너스 연산자는 사용하는 기호는 같으나 수행하는 연산이 다르다. let x = 1; alert(-x); // -1 (단항 마이너스 연산자는 부호를 뒤집음) let x = 1, y = 2; alert(y-x); // 1 (이항 마이너스 연산자는 뺄셈을 함) 자바스크립트에서 지원하는 수학 연산자는 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%), 거듭제곱 연산자(**)가 있다. 거듭제곱 연산자는 정수가 아닌 숫자에 대해서도 동작한다. alert(1+2); // 3 alert(1-2); // -..
아이디어 백트래킹으로 가장 작은 수의 좋은 수열을 찾는다. 풀이 #1 (Python) 좋은 수열 중 가장 작은 수는 1로 시작하게 되므로 리스트 stack에 길이 1과 문자열 1을 튜플로 저장한다. while문에서 DFS로 문자열 길이 l과 문자열 s를 꺼내 슬라이싱으로 인접한 두 부분 수열 중 같은 쌍을 찾는다. 같은 쌍이 존재하면 break로 다음 값을 꺼내고, 그렇지 않으면 길이가 N인지 비교하고 N이면 출력 후 종료한다. N이 아니면 stack에 다음 길이와 문자열을 추가하는데, stack은 마지막 값부터 꺼내므로 숫자가 큰 순서대로 넣는다. 가장 먼저 찾은 좋은 수열이 가장 작은 수의 좋은 수열이므로 좋은 수열을 찾으면 결과값 출력 후 while문을 종료한다. N = int(input()) st..
아이디어 루트 노드에서 시작한 DFS로 리프 노드에서부터 서브 트리에 속한 노드 개수를 구해 나간다. 풀이 #1 간선 정보를 2차원 리스트 graph에 저장하고, 서브 트리의 노드 개수를 저장하는 N+1 길이의 리스트 dp를 만든다. 함수 dfs에서 현재 노드의 서브 트리에 속한 노드 개수를 저장하는 cnt를 현재 노드를 고려하여 1로 초기화한다. for문에서 자식 노드들의 간선 정보에 포함된 현재 노드를 지우고, 자식 노드들의 반환값을 cnt에 더한다. 자식 노드들의 반환값을 모두 더한 cnt를 현재 노드 번호를 인덱스로 dp에 저장한 후 반환한다. 리프 노드에서는 for문이 실행되지 않고 처음 저장된 1이 그대로 반환된다. 루트 노드을 인자로 함수 dfs를 호출한 후, 쿼리에 따라 서브 트리의 노드 ..