diff --git "a/heesoo/Backjoon/DP/11659 \352\265\254\352\260\204 \355\225\251 \352\265\254\355\225\230\352\270\260 4.py" "b/heesoo/Backjoon/DP/11659 \352\265\254\352\260\204 \355\225\251 \352\265\254\355\225\230\352\270\260 4.py" new file mode 100644 index 0000000..ed858bd --- /dev/null +++ "b/heesoo/Backjoon/DP/11659 \352\265\254\352\260\204 \355\225\251 \352\265\254\355\225\230\352\270\260 4.py" @@ -0,0 +1,11 @@ +import sys +input = sys.stdin.readline +n, m = map(int, input().split()) +arr = list(map(int,input().split())) + +for i in range(1, len(arr)): + arr[i] += arr[i - 1] +arr = [0] + arr +for _ in range(m): + a, b = map(int, input().split()) + print(arr[b] - arr[a - 1]) \ No newline at end of file diff --git "a/heesoo/Backjoon/bfs_dfs/2206 \353\262\275 \353\266\200\354\210\230\352\263\240 \354\235\264\353\217\231\355\225\230\352\270\260.py" "b/heesoo/Backjoon/bfs_dfs/2206 \353\262\275 \353\266\200\354\210\230\352\263\240 \354\235\264\353\217\231\355\225\230\352\270\260.py" new file mode 100644 index 0000000..cc0e69b --- /dev/null +++ "b/heesoo/Backjoon/bfs_dfs/2206 \353\262\275 \353\266\200\354\210\230\352\263\240 \354\235\264\353\217\231\355\225\230\352\270\260.py" @@ -0,0 +1,7 @@ +n,m=map(int,input().split()) +board=[[int(char) for char in input()] for _ in range(n)] + +dx=[0,0,-1,1] +dy=[1,-1,0,0] + +open=0 diff --git "a/heesoo/Backjoon/bfs_dfs/2667 \353\213\250\354\247\200\353\262\210\355\230\270\353\266\231\354\235\264\352\270\260.py" "b/heesoo/Backjoon/bfs_dfs/2667 \353\213\250\354\247\200\353\262\210\355\230\270\353\266\231\354\235\264\352\270\260.py" new file mode 100644 index 0000000..a364afc --- /dev/null +++ "b/heesoo/Backjoon/bfs_dfs/2667 \353\213\250\354\247\200\353\262\210\355\230\270\353\266\231\354\235\264\352\270\260.py" @@ -0,0 +1,39 @@ +from collections import deque +n=int(input()) +board=[[int(char) for char in input()] for _ in range(n)] + +dx=[0,0,-1,1] +dy=[1,-1,0,0] + +def bfs(a,b,board): + cnt=0 + q=deque() + q.append((a,b)) + board[a][b]=0 + + while q: + x,y=q.popleft() + cnt+=1 + for i in range(4): + nx=x+dx[i] + ny=y+dy[i] + + if 0>nx or nx>=n or 0>ny or ny>=n: + continue + + if board[nx][ny]==1: + board[nx][ny]=0 + q.append((nx,ny)) + return cnt + + +ans=[] +for i in range(n): + for j in range(n): + if board[i][j]==1: + ans.append(bfs(i,j,board)) + +print(len(ans)) +ans.sort() +for i in ans: + print(i) \ No newline at end of file diff --git "a/heesoo/Backjoon/bfs_dfs/7569 \355\206\240\353\247\210\355\206\240.py" "b/heesoo/Backjoon/bfs_dfs/7569 \355\206\240\353\247\210\355\206\240.py" new file mode 100644 index 0000000..7c2f796 --- /dev/null +++ "b/heesoo/Backjoon/bfs_dfs/7569 \355\206\240\353\247\210\355\206\240.py" @@ -0,0 +1,53 @@ +from collections import deque +m,n,h=map(int,input().split()) +answer=0 +dx=[0,0,1,-1,0,0] +dy=[1,-1,0,0,0,0] +dz=[0,0,0,0,-1,1] + +graph=[[] for _ in range(h)] +visited=[[[0 for _ in range(m)] for _ in range(n)] for _ in range(h)] + +for i in range(n*h): + listm=list(map(int,input().split())) + graph[i//n].append(listm) + +dq=deque() + +def bfs(x,y,z,graph): + dq=deque() + dq.append((x,y,z)) + + while dq: + a,b,c=dq.popleft() + + for i in range(6): + nx=a+dx[i] + ny=b+dy[i] + nz=c+dz[i] + + if nx<0 or nx>=h or ny<0 or ny>=n or nz<0 or nz>=m: + continue + + if graph[nx][ny][nz]==0 and visited[nx][ny][nz]==0: + dq.append([nx,ny,nz]) + visited[nx][ny][nz]==1 + graph[nx][ny][nz]=graph[a][b][c]+1 + +for i in range(h): + for j in range(n): + for k in range(m): + if graph[i][j][k]==1 and visited[i][j][k]==0: + bfs(i,j,k,graph) + visited[i][j][k]=1 + +for i in graph: + for j in i: + for k in j: + if k==0: + print(-1) + exit(0) + answer=max(answer,max(j)) + + +print(answer-1) \ No newline at end of file diff --git "a/heesoo/Backjoon/\352\267\270\353\236\230\355\224\204/1613 \354\227\255\354\202\254.py" "b/heesoo/Backjoon/\352\267\270\353\236\230\355\224\204/1613 \354\227\255\354\202\254.py" new file mode 100644 index 0000000..8e5cf32 --- /dev/null +++ "b/heesoo/Backjoon/\352\267\270\353\236\230\355\224\204/1613 \354\227\255\354\202\254.py" @@ -0,0 +1,25 @@ +import sys +ip = sys.stdin.readline + +n, k = map(int, ip().split()) +arr=[[0 for _ in range(n+1)] for _ in range(n+1)] + +for _ in range(k): + a,b=map(int,ip().split()) + arr[a][b]=1 # a -> b + +for i in range(n+1): + for j in range(n+1): + for t in range(n+1): + if arr[j][i]+arr[i][t] == 2: + arr[j][t]=1 + +s=int(ip()) +for _ in range(s): + a,b=map(int,ip().split()) + if arr[a][b]==1: + print(-1) + elif arr[b][a]==1: + print(1) + else: + print(0) \ No newline at end of file diff --git "a/heesoo/Backjoon/\352\267\270\353\236\230\355\224\204/1753 \354\265\234\353\213\250\352\262\275\353\241\234.py" "b/heesoo/Backjoon/\352\267\270\353\236\230\355\224\204/1753 \354\265\234\353\213\250\352\262\275\353\241\234.py" new file mode 100644 index 0000000..64591b3 --- /dev/null +++ "b/heesoo/Backjoon/\352\267\270\353\236\230\355\224\204/1753 \354\265\234\353\213\250\352\262\275\353\241\234.py" @@ -0,0 +1,40 @@ +import sys +import heapq +input = sys.stdin.readline + +n, m = map(int, input().split()) +k = int(input()) +INF = int(1e9) + + +graph = [[] * (n+1) for _ in range(n+1)] +distance = [INF] * (n+1) + +for _ in range(m): + a, b, c = map(int, input().split()) + graph[a].append((b, c)) + + +def dijkstra(start): + q = [] + heapq.heappush(q, (0, start)) + distance[start] = 0 + + while q: + dist, now = heapq.heappop(q) + if distance[now] < dist: + continue + + for i in graph[now]: + cost = dist + i[1] + if cost < distance[i[0]]: + distance[i[0]] = cost + heapq.heappush(q, (cost, i[0])) + +dijkstra(k) + +for i in range(1, n+1): + if distance[i] == INF: + print("INF") + else: + print(distance[i]) \ No newline at end of file diff --git "a/heesoo/Backjoon/\352\267\270\353\236\230\355\224\204/2252 \354\244\204 \354\204\270\354\232\260\352\270\260.py" "b/heesoo/Backjoon/\352\267\270\353\236\230\355\224\204/2252 \354\244\204 \354\204\270\354\232\260\352\270\260.py" new file mode 100644 index 0000000..63e0318 --- /dev/null +++ "b/heesoo/Backjoon/\352\267\270\353\236\230\355\224\204/2252 \354\244\204 \354\204\270\354\232\260\352\270\260.py" @@ -0,0 +1,33 @@ +from collections import deque + +n,m=map(int,input().split()) +indegree=[0]*(n+1) +graph=[[] for _ in range(n+1)] + +for _ in range(m): + a,b=map(int,input().split()) + graph[a].append(b) + indegree[b]+=1 + +def sortList(indegree, graph): + result=[] + q=deque() + for i in range(1,len(indegree)): + if indegree[i]==0: + q.append(i) + + while q: + now=q.popleft() + result.append(now) + + for i in graph[now]: + indegree[i]-=1 + + if indegree[i]==0: + q.append(i) + + return result + +answer=sortList(indegree,graph) +answer = list(map(str,answer)) +print(' '.join(answer)) \ No newline at end of file diff --git "a/heesoo/programmers/bfs_dfs/43163 \353\213\250\354\226\264 \353\263\200\355\231\230.py" "b/heesoo/programmers/bfs_dfs/43163 \353\213\250\354\226\264 \353\263\200\355\231\230.py" new file mode 100644 index 0000000..e69de29 diff --git "a/heesoo/programmers/\355\236\231/42626 \353\215\224 \353\247\265\352\262\214.py" "b/heesoo/programmers/\355\236\231/42626 \353\215\224 \353\247\265\352\262\214.py" new file mode 100644 index 0000000..e69de29 diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/1563 \352\260\234\352\267\274\354\203\201.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/1563 \352\260\234\352\267\274\354\203\201.py" new file mode 100644 index 0000000..604d2cc --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/1563 \352\260\234\352\267\274\354\203\201.py" @@ -0,0 +1,8 @@ +# 지각 두번 이상 +# 결석 세번 연속 +# O 출석 L 지각 A 결석 +n = int(input()) +total = 3 ** n + +# 결석 세번 연속 +absent = diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/17626 Four Squares.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/17626 Four Squares.py" new file mode 100644 index 0000000..42addbd --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/17626 Four Squares.py" @@ -0,0 +1,21 @@ +from itertools import permutations, combinations +import math +n = int(input()) + + +def getValue(n): + if math.sqrt(n) == int(math.sqrt(n)): + return 1 + + for i in range(1, int(math.sqrt(n)) + 1): + if math.sqrt(n - i**2) == int(math.sqrt(n - i**2)): + return 2 + + for i in range(1, int(math.sqrt(n)) + 1): + for j in range(1, int(math.sqrt(n - i**2)) + 1): + if math.sqrt(n - i**2 - j**2) == int(math.sqrt(n - i**2 - j**2)): + return 3 + + return 4 + +print(getValue(n)) \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/18870 \354\242\214\355\221\234\354\225\225\354\266\225.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/18870 \354\242\214\355\221\234\354\225\225\354\266\225.py" new file mode 100644 index 0000000..55b6d41 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/18870 \354\242\214\355\221\234\354\225\225\354\266\225.py" @@ -0,0 +1,25 @@ +n = int(input()) +arr = list(map(int, input().split())) + +temp_list = [] +for i in range(len(arr)): + temp_list.append([i, arr[i]]) + +temp_list = sorted(temp_list, key = lambda x:x[1]) + +temp_list[0].append(0) +num = temp_list[0][1] +pos = 0 + +for i in range(1, len(temp_list)): + a, b = temp_list[i] + if temp_list[i - 1][1] < b: + pos += 1 + temp_list[i].append(pos) + else: + temp_list[i].append(pos) + +temp_list = sorted(temp_list, key = lambda x : x[0]) + +for c in temp_list: + print(c[2], end = ' ') \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/18870 \354\242\214\355\221\234\354\225\225\354\266\2252.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/18870 \354\242\214\355\221\234\354\225\225\354\266\2252.py" new file mode 100644 index 0000000..f6fd288 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/18870 \354\242\214\355\221\234\354\225\225\354\266\2252.py" @@ -0,0 +1,10 @@ +n = int(input()) +arr = list(map(int, input().split())) + +arr2 = sorted(list(set(arr))) +print(arr2) + +dict_val = {arr2[i] : i for i in range(len(arr2))} + +for i in arr: + print(dict_val[i], end = ' ') \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/2170 \354\204\240 \352\270\213\352\270\260.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/2170 \354\204\240 \352\270\213\352\270\260.py" new file mode 100644 index 0000000..77dc608 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/2170 \354\204\240 \352\270\213\352\270\260.py" @@ -0,0 +1,30 @@ +import sys + +input = sys.stdin.readline + +N = int(input()) +origin_lines = list(tuple(map(int, input().split())) for _ in range(N)) + +origin_lines.sort() # 정렬 + +# 맨 처음 꺼 기준으로 +start = origin_lines[0][0] +end = origin_lines[0][1] + +ans = 0 +for k in range(1, N): # 나머지 선들 보자 + now_start, now_end = origin_lines[k] + + # 겹치는 경우 => 시작점은 무조건 원래 있던 게 더 앞섬. 도착점은 비교해서 정하기. + if end > now_start: + end = max(end, now_end) + + # 안 겹치는 경우 + else: + # 기존 것을 ans에 더하기 + ans += (end - start) + # 새로운 걸로 업데이트 + start, end = now_start, now_end + +ans += (end - start) +print(ans) \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/10971 \354\231\270\355\214\220\354\233\220 \354\210\234\355\232\214.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/10971 \354\231\270\355\214\220\354\233\220 \354\210\234\355\232\214.py" new file mode 100644 index 0000000..ae79bca --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/10971 \354\231\270\355\214\220\354\233\220 \354\210\234\355\232\214.py" @@ -0,0 +1,30 @@ +n = int(input()) +a = [list(map(int, input().split())) for _ in range(n)] +ans = int(1e9) + +def dfs(start, now, value, cnt): + print(start, now, value, cnt) + global ans + if cnt == n: + if a[now][start]: + value += a[now][start] + if ans > value: + ans = value + + return + + if value > ans: + return + + for i in range(n): + if not visited[i] and a[now][i]: + visited[i] = 1 + dfs(start, i, value + a[now][i], cnt + 1) + visited[i] = 0 + +visited = [0] * n +for i in range(n): + visited[i] = 1 + dfs(i, i, 0, 1) + visited[i] = 0 +print(ans) diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/16920 \355\231\225\354\236\245 \352\262\214\354\236\204.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/16920 \355\231\225\354\236\245 \352\262\214\354\236\204.py" new file mode 100644 index 0000000..1730650 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/16920 \355\231\225\354\236\245 \352\262\214\354\236\204.py" @@ -0,0 +1,53 @@ +from collections import deque +from collections import defaultdict + +n, m, p = map(int, input().split()) +s_arr = [0] + list(map(int, input().split())) +board = [] +cnt = [0 for _ in range(p + 1)] +cas_pos = defaultdict(list) + +for i in range(n): + input_list = list(input().rstrip()) + board.append(input_list) + for j in range(m): + if input_list[j] != '.' and input_list[j] != '#': + input_list[j] = int(input_list[j]) + cnt[input_list[j]] += 1 + cas_pos[input_list[j]].append([i, j]) + +# s_arr[i]번 만큼 돌면서 bfs 수행 + +dx = [0, 0, -1, 1] +dy = [1, -1, 0, 0] + +def bfs(): + while True: + flag = False + for arr in cas_pos.values(): + if len(arr) > 0: + flag = True + break + if flag == False: + break + + for i in range(1, p + 1): + for _ in range(s_arr[i]): + q = deque(cas_pos[i]) + cas_pos.clear() + + while q: + x, y = q.popleft() + for i in range(4): + nx = x + dx[i] + ny = y + dy[i] + if 0 > nx or n <= nx or 0 > ny or m <= ny: + continue + if board[nx][ny] == '.': + # cnt[i] += 1 + board[nx][ny] = str(i) + cas_pos[i].append([nx, ny]) + + +bfs() +print(cnt) \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/2468 \354\225\210\354\240\204 \354\230\201\354\227\255.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/2468 \354\225\210\354\240\204 \354\230\201\354\227\255.py" new file mode 100644 index 0000000..787ae05 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/2468 \354\225\210\354\240\204 \354\230\201\354\227\255.py" @@ -0,0 +1,46 @@ +from collections import deque +n = int(input()) +board = [] +max_val = 0 +for i in range(n): + arr = list(map(int, input().split())) + board.append(arr) + arr.append(max_val) + max_val = max(arr) + + +dx = [0, 0, 1, -1] +dy = [1, -1, 0, 0] +def check_num(x, y, val, visited): + q = deque() + q.append((x, y)) + visited[x][y] = 1 + while q: + a, b = q.popleft() + for i in range(4): + nx = a + dx[i] + ny = b + dy[i] + + if 0 > nx or n <= nx or 0 > ny or n <= ny: + continue + + if visited[nx][ny] == 0 and board[nx][ny] - val > 0: + q.append((nx, ny)) + visited[nx][ny] = 1 + +def check_all(board): + max_ans = 0 + for k in range(max_val): + visited = [[0 for _ in range(n)] for _ in range(n)] + num = 0 + for i in range(n): + for j in range(n): + if board[i][j] - k > 0 and visited[i][j] == 0: + check_num(i, j, k, visited) + num += 1 + max_ans = max(max_ans, num) + return max_ans + + +print(check_all(board)) + diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/2468 \354\225\210\354\240\204 \354\230\201\354\227\2552.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/2468 \354\225\210\354\240\204 \354\230\201\354\227\2552.py" new file mode 100644 index 0000000..fc8764e --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/dfsbfs/2468 \354\225\210\354\240\204 \354\230\201\354\227\2552.py" @@ -0,0 +1,46 @@ +from collections import deque + +n = int(input()) +graph = [] +maxNum = 0 + +for i in range(n): + graph.append(list(map(int, input().split()))) + for j in range(n): + if graph[i][j] > maxNum: + maxNum = graph[i][j] + + +dx = [0 ,0, 1, -1] +dy = [1, -1, 0 ,0] +def bfs(a, b, value, visited): + q = deque() + q.append((a, b)) + visited[a][b] = 1 + + while q: + x, y = q.popleft() + + for i in range(4): + nx = x + dx[i] + ny = y + dy[i] + if 0 <= nx < n and 0 <= ny < n: + if graph[nx][ny] > value and visited[nx][ny] == 0: + visited[nx][ny] = 1 + q.append((nx, ny)) + +result = 0 +for i in range(maxNum): + visited = [[0] * n for i in range(n)] + cnt = 0 + + for j in range(n): + for k in range(n): + if graph[j][k] > i and visited[j][k] == 0: + bfs(j, k, i, visited) + cnt += 1 + + if result < cnt: + result = cnt + +print(result) \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/ MAX \352\260\200\352\262\251\354\235\264 \354\240\234\354\235\274 \353\271\204\354\213\274 \354\213\235\355\222\210\354\235\230 \354\240\225\353\263\264 \354\266\234\353\240\245\355\225\230\352\270\260.sql" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/ MAX \352\260\200\352\262\251\354\235\264 \354\240\234\354\235\274 \353\271\204\354\213\274 \354\213\235\355\222\210\354\235\230 \354\240\225\353\263\264 \354\266\234\353\240\245\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..2066810 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/ MAX \352\260\200\352\262\251\354\235\264 \354\240\234\354\235\274 \353\271\204\354\213\274 \354\213\235\355\222\210\354\235\230 \354\240\225\353\263\264 \354\266\234\353\240\245\355\225\230\352\270\260.sql" @@ -0,0 +1,4 @@ +SELECT * +FROM FOOD_PRODUCT +WHERE PRICE = +(SELECT MAX(PRICE) PRICE FROM FOOD_PRODUCT); \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/3\354\233\224\354\227\220 \355\203\234\354\226\264\353\202\234 \354\227\254\354\204\261 \355\232\214\354\233\220 \353\252\251\353\241\235 \354\266\234\353\240\245\355\225\230\352\270\260.sql" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/3\354\233\224\354\227\220 \355\203\234\354\226\264\353\202\234 \354\227\254\354\204\261 \355\232\214\354\233\220 \353\252\251\353\241\235 \354\266\234\353\240\245\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..3e375c8 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/3\354\233\224\354\227\220 \355\203\234\354\226\264\353\202\234 \354\227\254\354\204\261 \355\232\214\354\233\220 \353\252\251\353\241\235 \354\266\234\353\240\245\355\225\230\352\270\260.sql" @@ -0,0 +1,5 @@ +SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, "%Y-%m-%d") +FROM MEMBER_PROFILE +WHERE DATE_FORMAT(DATE_OF_BIRTH, '%m') = '03' AND GENDER = 'W' AND TLNO IS NOT NULL +ORDER BY MEMBER_ID +; \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/GROUPBY \354\236\220\353\217\231\354\260\250 \353\214\200\354\227\254 \352\270\260\353\241\235\354\227\220\354\204\234 \353\214\200\354\227\254\354\244\221.sql" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/GROUPBY \354\236\220\353\217\231\354\260\250 \353\214\200\354\227\254 \352\270\260\353\241\235\354\227\220\354\204\234 \353\214\200\354\227\254\354\244\221.sql" new file mode 100644 index 0000000..c6c1975 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/GROUPBY \354\236\220\353\217\231\354\260\250 \353\214\200\354\227\254 \352\270\260\353\241\235\354\227\220\354\204\234 \353\214\200\354\227\254\354\244\221.sql" @@ -0,0 +1,13 @@ +SELECT CAR_ID, + CASE + WHEN CAR_ID IN ( + SELECT CAR_ID + FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY + WHERE '2022-10-16' BETWEEN START_DATE AND END_DATE + ) + THEN '대여중' + ELSE '대여 가능' + END "AVAILABILITY" +FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY +GROUP BY CAR_ID +ORDER BY CAR_ID DESC \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/GROUPBY \354\241\260\352\261\264\354\227\220 \353\247\236\353\212\224 \354\202\254\354\232\251\354\236\220\354\231\200 \354\264\235 \352\261\260\353\236\230\352\270\210\354\225\241 \354\241\260\355\232\214\355\225\230\352\270\260.sql" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/GROUPBY \354\241\260\352\261\264\354\227\220 \353\247\236\353\212\224 \354\202\254\354\232\251\354\236\220\354\231\200 \354\264\235 \352\261\260\353\236\230\352\270\210\354\225\241 \354\241\260\355\232\214\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..997f9de --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/GROUPBY \354\241\260\352\261\264\354\227\220 \353\247\236\353\212\224 \354\202\254\354\232\251\354\236\220\354\231\200 \354\264\235 \352\261\260\353\236\230\352\270\210\354\225\241 \354\241\260\355\232\214\355\225\230\352\270\260.sql" @@ -0,0 +1,6 @@ +SELECT B.USER_ID, B.NICKNAME, SUM(PRICE) AS TOTAL_SALES +FROM USED_GOODS_BOARD AS A JOIN USED_GOODS_USER AS B ON A.WRITER_ID = B.USER_ID +WHERE STATUS = 'DONE' +GROUP BY A.WRITER_ID +HAVING TOTAL_SALES >= 700000 +ORDER BY TOTAL_SALES \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/JOIN \354\243\274\353\254\270\353\237\211\354\235\264 \353\247\216\354\235\200 \354\225\204\354\235\264\354\212\244\355\201\254\353\246\274\353\223\244 \354\241\260\355\232\214\355\225\230\352\270\260.sql" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/JOIN \354\243\274\353\254\270\353\237\211\354\235\264 \353\247\216\354\235\200 \354\225\204\354\235\264\354\212\244\355\201\254\353\246\274\353\223\244 \354\241\260\355\232\214\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..bf087fb --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/JOIN \354\243\274\353\254\270\353\237\211\354\235\264 \353\247\216\354\235\200 \354\225\204\354\235\264\354\212\244\355\201\254\353\246\274\353\223\244 \354\241\260\355\232\214\355\225\230\352\270\260.sql" @@ -0,0 +1,9 @@ +-- 코드를 입력하세요 +SELECT F.FLAVOR FROM FIRST_HALF F +JOIN ( + SELECT FLAVOR, TOTAL_ORDER + FROM JULY + ) AS J +ON F.FLAVOR = J.FLAVOR +GROUP BY FLAVOR +ORDER BY SUM(F.TOTAL_ORDER) + SUM(J.TOTAL_ORDER) DESC LIMIT 3 \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/JOIN \354\271\264\355\205\214\352\263\240\353\246\254 \353\263\204 \353\217\204\354\204\234 \355\214\220\353\247\244\353\237\211 \354\247\221\352\263\204\355\225\230\352\270\260.sql" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/JOIN \354\271\264\355\205\214\352\263\240\353\246\254 \353\263\204 \353\217\204\354\204\234 \355\214\220\353\247\244\353\237\211 \354\247\221\352\263\204\355\225\230\352\270\260.sql" new file mode 100644 index 0000000..ce1f242 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/sql/JOIN \354\271\264\355\205\214\352\263\240\353\246\254 \353\263\204 \353\217\204\354\204\234 \355\214\220\353\247\244\353\237\211 \354\247\221\352\263\204\355\225\230\352\270\260.sql" @@ -0,0 +1,7 @@ +SELECT b.CATEGORY, SUM(bs.SALES) AS TOTAL_SALES +FROM BOOK b +JOIN BOOK_SALES bs +ON b.BOOK_ID = bs.BOOK_ID +WHERE bs.SALES_DATE LIKE '2022-01%' +GROUP BY b.CATEGORY +ORDER BY b.CATEGORY \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\353\270\214\353\243\250\355\212\270\355\217\254\354\212\244/15651 N\352\263\274 M.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\353\270\214\353\243\250\355\212\270\355\217\254\354\212\244/15651 N\352\263\274 M.py" new file mode 100644 index 0000000..4065ca1 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\353\270\214\353\243\250\355\212\270\355\217\254\354\212\244/15651 N\352\263\274 M.py" @@ -0,0 +1,13 @@ +n, m = map(int, input().split()) + +def dfs(arr): + if len(arr) == m: + print(''.join(map(str,arr))) + return + + for i in range(1, n + 1): + arr.append(i) + dfs(arr) + arr.pop() + +dfs([]) diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/10816 \354\210\253\354\236\220\354\271\264\353\223\2342.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/10816 \354\210\253\354\236\220\354\271\264\353\223\2342.py" new file mode 100644 index 0000000..83f3635 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/10816 \354\210\253\354\236\220\354\271\264\353\223\2342.py" @@ -0,0 +1,25 @@ +n = int(input()) +arr = list(map(int, input().split())) +m = int(input()) +arr_ans = list(map(int, input().split())) + +dict_val = {} +for i in arr: + if i in dict_val: + dict_val[i] += 1 + else: + dict_val[i] = 1 + +print(dict_val) +for i in arr_ans: + if i in set(dict_val.keys()): + print(dict_val[i], end= ' ') + else: + print(0, end = ' ') + +for t in arr_ans: + r = dict_val.get(t) + if r == None: + print(0, end = ' ') + else: + print(r, end = ' ') \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/10816 \354\210\253\354\236\220\354\271\264\353\223\23422.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/10816 \354\210\253\354\236\220\354\271\264\353\223\23422.py" new file mode 100644 index 0000000..e69de29 diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/12015 \352\260\200\354\236\245 \352\270\264 \354\246\235\352\260\200\355\225\230\353\212\224 \353\266\200\353\266\204 \354\210\230\354\227\264 2.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/12015 \352\260\200\354\236\245 \352\270\264 \354\246\235\352\260\200\355\225\230\353\212\224 \353\266\200\353\266\204 \354\210\230\354\227\264 2.py" new file mode 100644 index 0000000..a22794c --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/12015 \352\260\200\354\236\245 \352\270\264 \354\246\235\352\260\200\355\225\230\353\212\224 \353\266\200\353\266\204 \354\210\230\354\227\264 2.py" @@ -0,0 +1,3 @@ +n = int(input()) +arr = list(map(int, input().split())) + diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/2110 \352\263\265\354\234\240\352\270\260 \354\204\244\354\271\230.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/2110 \352\263\265\354\234\240\352\270\260 \354\204\244\354\271\230.py" new file mode 100644 index 0000000..9f70dce --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/2110 \352\263\265\354\234\240\352\270\260 \354\204\244\354\271\230.py" @@ -0,0 +1,52 @@ +# def binary_search(target, data): +# data.sort() + +# start = 0 +# end = len(data) - 1 + +# while start <= end: +# mid = (start + end) // 2 +# if data[mid] == target: +# return mid +# if data[mid] < target: +# start = mid + 1 +# else: +# end = mid - 1 + +# return None + +n, c = map(int, input().split()) +arr = [] +for _ in range(n): + arr.append(int(input())) + +arr.sort() +answer = 0 + +def binary_search(array, start, end): + while start <= end: + mid = (start + end) // 2 + cur = arr[0] + cnt = 1 + + for i in range(1, len(arr)): + if arr[i] - cur >= mid: + cnt += 1 + cur = arr[i] + + if cnt >= c: + global answer + answer = mid + start = mid + 1 + else: + end = mid - 1 + +start = 1 +end = arr[-1] - arr[0] +binary_search(arr, start, end) +print(answer) + + + + + diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/2805 \353\202\230\353\254\264\354\236\220\353\245\264\352\270\260.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/2805 \353\202\230\353\254\264\354\236\220\353\245\264\352\270\260.py" new file mode 100644 index 0000000..e0fcc75 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/2805 \353\202\230\353\254\264\354\236\220\353\245\264\352\270\260.py" @@ -0,0 +1,27 @@ +n, m = map(int, input().split()) +arr = list(map(int, input().split())) +arr.sort() +answer = 0 + +def getValue(arr, target): + value = 0 + for a in arr: + if a > target: + value += (a - target) + return value + + +def binary_search(arr, start, end): + global answer + while start <= end: + mid = (start + end) // 2 + + if getValue(arr, mid) >= m: + answer = max(answer, mid) + start = mid + 1 + else: + end = mid - 1 + + +binary_search(arr, 0, max(arr)) +print(answer) \ No newline at end of file diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/\354\235\264\353\266\204\355\203\220\354\203\211.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/\354\235\264\353\266\204\355\203\220\354\203\211.py" new file mode 100644 index 0000000..158c6b1 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\235\264\353\266\204\355\203\220\354\203\211/\354\235\264\353\266\204\355\203\220\354\203\211.py" @@ -0,0 +1,29 @@ +import bisect + +def binary_search(target, data): + data.sort() + start = 0 + end = len(data) - 1 + + while start <= end: + mid = (start + end) // 2 + + if data[mid] == target: + return mid + elif data[mid] < target: + start = mid + 1 + else: + end = mid - 1 + + return None + +arr = [100, 100, 200, 300] + +print(bisect.bisect_left(arr, 0)) +print(bisect.bisect_left(arr, 150)) +print(bisect.bisect_left(arr, 350)) +print(bisect.bisect_left(arr, 100)) +print(bisect.bisect_right(arr, 100)) +print(bisect.bisect_right(arr, 0)) +print(bisect.bisect_right(arr, 150)) +print(bisect.bisect_right(arr, 350)) diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\265\234\353\213\250\352\262\275\353\241\234/11404 \355\224\214\353\241\234\354\235\264\353\223\234.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\265\234\353\213\250\352\262\275\353\241\234/11404 \355\224\214\353\241\234\354\235\264\353\223\234.py" new file mode 100644 index 0000000..d8db959 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\265\234\353\213\250\352\262\275\353\241\234/11404 \355\224\214\353\241\234\354\235\264\353\223\234.py" @@ -0,0 +1,29 @@ +INF = int(1e9) + +n = int(input()) +m = int(input()) + +graph = [[INF] * (n + 1) for _ in range(n + 1)] +for i in range(1, n + 1): + for j in range(1, n + 1): + if i == j: + graph[i][j] = 0 + +for _ in range(m): + a, b, c = map(int, input().split()) + graph[a][b] = min(c, graph[a][b]) + +for k in range(1, n + 1): + for a in range(1, n + 1): + for b in range(1, n + 1): + graph[a][b] = min(graph[a][b], graph[a][k] + graph[k][b]) + +for a in range(1, n + 1): + for b in range(1, n + 1): + if graph[a][b] == INF: + print('0', end = " ") + else: + print(graph[a][b], end = " ") + + print() + diff --git "a/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\265\234\353\213\250\352\262\275\353\241\234/1753 \354\265\234\353\213\250\352\262\275\353\241\234.py" "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\265\234\353\213\250\352\262\275\353\241\234/1753 \354\265\234\353\213\250\352\262\275\353\241\234.py" new file mode 100644 index 0000000..5f16ee5 --- /dev/null +++ "b/heesoo/\354\275\224\355\205\214\354\244\200\353\271\204/\354\265\234\353\213\250\352\262\275\353\241\234/1753 \354\265\234\353\213\250\352\262\275\353\241\234.py" @@ -0,0 +1,37 @@ +n, m = map(int, input().split()) +k = int(input()) # 시작할 노드 +INF = 1e8 + +graph = [[] for _ in range(n+1)] # 1번 노드부터 시작하므로 하나더 추가 + +distance = [INF] * (n+1) + +for _ in range(m): + u, v, w = map(int, input().split()) # u: 출발노드, v: 도착노드, w: 연결된 간선의 가중치 + graph[u].append((v, w)) # 거리 정보와 도착노드를 같이 입력합니다. + + +import heapq + +def dijkstra(start): + q = [] + heapq.heappush(q, (0, start)) # 우선순위, 값 형태로 들어간다. + distance[start] = 0 + + while q: + dist, now = heapq.heappop(q) # 우선순위가 가장 낮은 값(가장 작은 거리)이 나온다. + + if distance[now] < dist: # 이미 입력되어있는 값이 현재노드까지의 거리보다 작다면 이미 방문한 노드이다. + continue # 따라서 다음으로 넘어간다. + + for i in graph[now]: # 연결된 모든 노드 탐색 + if dist+i[1] < distance[i[0]]: # 기존에 입력되어있는 값보다 크다면 + distance[i[0]] = dist+i[1] # + heapq.heappush(q, (dist+i[1], i[0])) +dijkstra(k) + +for i in distance: + if i == INF: + print('INF') + else: + print(i) \ No newline at end of file