본문 바로가기
반응형

전체 글 목록571

[데이터베이스] 인덱스 알아보기 인덱스는 where 절에서 사용해야 효과가 있다. 예를 들어 '책' 테이블의 '출판사', '제목', '작가'가 있다고 하자. 이때 인덱스는 '출판사'에 걸려 있다. 1) SELECT * FROM '책' WHERE '작가' = '짱구'; 2) SELECT '제목' FROM '책' WHERE '출판사' = '스타'; 위의 두 쿼리 중 인덱스의 효과를 받을 수 있는 쿼리는 2번뿐이다. 인덱스는 무조건 많다고 좋지 않다. 인덱스가 많아질수록 무조건 검색 속도 향상을 기대할 수 있는 것은 아니다. 인덱스는 데이터베이스의 메모리를 사용하여 테이블 형태로 저장되므로 인덱스의 개수와 메모리 사용량은 비례한다. 자주 조회하고 고유한 값 위주로 설정하는 것이 좋다. DML의 경우 UPDATE, DELETE에선 WHERE절.. 2022. 4. 7.
[세그먼트 트리/파이썬] 백준 6549번: 히스토그램에서 가장 큰 직사각형 / 플래5 https://www.acmicpc.net/problem/6549 6549번: 히스토그램에서 가장 큰 직사각형 입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤ www.acmicpc.net import sys sys.setrecursionlimit(10**5) input = sys.stdin.readline def merge(left, right): if left[0] < right[0]: return left else: return right def build(node, left, right): if left == right.. 2022. 4. 6.
[세그먼트 트리/파이썬] 백준 2357번: 최솟값과 최댓값 / 골드 1 https://www.acmicpc.net/problem/2357 2357번: 최솟값과 최댓값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100 www.acmicpc.net import sys input = sys.stdin.readline n, m = map(int, input().split()) nums = [] for _ in range(n): nums.append(int(input())) s_tree = [[0 for _ in range(2)] for _ in range(4*n)] def merge(left, right):.. 2022. 4. 5.
[기하학/파이썬] 백준 20149번 : 선분 교차 3 / 플래4 https://www.acmicpc.net/problem/17387 17387번: 선분 교차 2 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. www.acmicpc.net x1, y1, x2, y2 = map(int, input().split()) x3, y3, x4, y4 = map(int, input().split()) p1 = [x1, y1] p2 = [x2, y2] p3 = [x3, y3] p4 = [x4, y4] if min(x1, x2) > max(x3, x4) or min(x3, x4) > max(x1, x2) or \ min(y1, y2) > max(y3, y4) or min(y3, y4) > max(y1, y.. 2022. 4. 5.
백준 플래티넘 티어 달성! 2021년 5월 말부터 백준을 본격적으로 풀기 시작하여 8월 말에 골드1을 찍었었는데 이때쯤 문제수가 100개가 넘어가자 점수가 정말 안올랐다. 그러다가 2022년 4월 4일, 드디어 백준 플래티넘을 달게 되었다. 막상 플래를 달았지만 아직 플래 문제는 손도 못대는 수준이니, 더 노력해야겠다. 다음 목표는 다이아! 2022. 4. 5.
[누적합, 부분합] 백준 10986번 : 나머지 합 / 골드 3 https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net n, m = map(int, input().split()) nums = list(map(int, input().split())) remain_count = [0 for _ in range(m)] remain_count[0] = 1 a = 0 for i in range(1, n+1): a += nums[i-1] a %= m remain_count[a].. 2022. 4. 4.
반응형