일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 가장 긴 팰린드롬 파이썬
- 가장 긴 바이토닉 부분 수열 파이썬
- 등굣길 파이썬
- 프로그래머스 베스트앨범
- 백준 1238 파티 파이썬
- 프로그래머스 가장 긴 팰린드롬
- 백준 1043 거짓말 파이썬
- 백준 2352 반도체 설계 파이썬
- 트리의 지름 파이썬
- 백준 1167 트리의 지름 파이썬
- SQL SERVER MIGRATION
- 프로그래머스 여행경로
- 백준 11054.가장 긴 바이토닉 부분 수열
- 다중 컬럼 NOT IN
- 프로그래머스 등굣길
- 역사 파이썬
- 순위 파이썬
- 백준 1613 역사
- 프로그래머스 순위
- 베스트앨범 파이썬
- 백준 1516 게임 개발
- 게임 개발 파이썬
- 램프 파이썬
- SWEA
- 백준 1034 램프 파이썬
- 프로그래머스 순위 파이썬
- 다리 만들기 파이썬
- SQL SERVER 장비교체
- 백준 2146 다리 만들기
- 반도체 설계 파이썬
- Today
- Total
목록전체 글 (231)
공부, 기록
1. 인덱스가 뭘까? 인덱스란 목차를 뜻하며 그 기능은 효율적인 조회에 이바지하는 것이다. 보통 책에서 자신이 원하는 키워드나 파트를 찾을 때 책의 가장 앞에있는 목차 또는 가장 뒤쪽에 있는 범례를 보는데 SQL에서는 이 기능을 하는 것을 인덱스라 한다. 여기서 목차는 클러스터형 인덱스이고 범례는 비클러스터형 인덱스라 고 생각하면 쉽다. 2. 클러스터드와 비클러스터드 인덱스 클러스터형 인덱스는 각 테이블당 하나만 생성이 가능하다. 그 이유는 클러스터형 인덱스를 기준으로 테이블이 정렬이 되기 때문. SQL SERVER에서는 테이블 생성 시 PRIMARY KEY를 지정하면 클러스터형 인덱스로 자동 생성한다. 비클러스터드 인덱스는 정렬이 되지 않는 인덱스이다. 그렇기 때문에 테이블당 다수의 비클러스터형 인덱스..
데이터를 조회하던 중 JOIN 조건에 대해 한쪽 테이블에만 있는 행들을 조회가 필요했다. 이런 경우 다른 DB에서는 다중컬럼에 NOT IN 조건을 걸어 탐색할 수 있었다. 하지만 MSSQL에선 다중컬럼에 대한 NOT IN을 사용할 수 없다. 해당 컬럼들의 리턴값을 문자열로 캐스팅하여 IN 으로 검색하였으나 비용이 너무 크게 잡혔다. 이를 해결하기위해서는 OUTER 조인을 사용한 후 조건을 IS NULL로 주면 된다. EX) SELECT * FROM TABLE_A AS A LEFT OUTER JOIN TABLE_B AS B ON A.COL1 = B.COL1 WHERE B.COL1 IS NULL
문제링크 : www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net from collections import deque def solution(MAPS, N, M): tomatoidx=deque() for i in range(M): for j in range(N): if MAPS[i][j] == 1: tomatoidx.append((i,j,0)) dx=[0,0,1,-1]; dy=[1,-1,0,0] maxday=0 while tomatoidx: x,..
문제링크 : www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. www.acmicpc.net """7 0110100 0110101 1110101 0000111 0100000 0111110 0111000 """ def solution(MAPS,N): stack=list() visitied=list() dx=[0,0,-1,1] dy=[1,-1,0,0] count=1 answers=list() for j in range(N): for k in range(N): if MAPS[j][k] == 1: s..
문제링크 : www.acmicpc.net/problem/2565 2565번: 전깃줄 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는 www.acmicpc.net def solution(A): A.sort() dp=[1]*len(A) for i in range(1,len(A)): for j in range(i): if A[i][1] > A[j][1]: if dp[i] < dp[j]+1: dp[i] = dp[j]+1 return len(A)-max(dp) def main(): N = int(input()) A=[0]*N if N == 1: print(0) else: ..
문제링크 : www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net import sys n, k = list(map(int, sys.stdin.readline().split())) value = [] for i in range(n): temp = int(sys.stdin.readline()) value.append(temp) dp = [0 for i in range(10001)] dp[0] = 1 for i in value: for j in range(i, k + 1..
문제링크 : www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net def solution(MAPS,N,M): stack=list() visitied=list() stack.append((0,0,1)) visitied.append((0,0)) dx=[0,0,1,-1] dy=[1,-1,0,0] answer = list() while stack: x,y,count = stack.pop(0) if (x,y) == (N-1,M-1): answer.append(count) for i in range(4):..
문제링크 : www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net def solution(N, lines): if N == 1: return lines[0] dp=[0]*N dp[0] = lines[0] dp[1] = lines[0]+lines[1] for i in range(2,N): dp[i] = max(lines[i]+lines[i-1]+dp[i-3],lines[i]+dp[i-2],dp[i-1]) return dp[-1] def main(): N = int(i..
문제링크 : www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이 www.acmicpc.net import heapq as hq import sys queue = list() hq.heapify(queue) for i in range(int(input())): NUM = int(sys.stdin.readline()) if NUM == 0: if len(queue)==0: print(0) else: print(hq.heappop(queue)) else: hq.heappush(qu..
문제링크 : www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net from collections import deque def solution(N,M): queue=deque() queue.append((N,0)) visitied=set() visitied.add(N) while queue: x, time = queue.popleft() if x == M: return time for i in range(3): if i ==0: mx =..