๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

์ „์ฒด ๊ธ€148

[TIL] ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ ํ’€์ด3 1. ๋ฌธ์ œ ํ’€์ด ์—ฐ์Šต 1. 11660๋ฒˆ - ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ 5 import sys N, M = map(int, sys.stdin.readline().split()) table = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] # ๋ˆ„์ ํ•ฉ์„ ์ €์žฅํ•  ์ด์ฐจ์› ๋ฐฐ์—ด dp = [[0] * (N+1) for _ in range(N+1)] for i in range(1, N+1) : for j in range(1, N+1) : dp[i][j] = table[i-1][j-1] + dp[i][j-1] + dp[i-1][j] - dp[i-1][j-1] # ์›ํ•˜๋Š” ๊ตฌ๊ฐ„ํ•ฉ ๊ตฌํ•˜๊ธฐ for _ in range(M) : x1,y1,x2,y2 = map(int, s.. 2023. 5. 2.
[TIL] ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ ํ’€์ด + ๊ธฐ๊ณ„ ์ˆ˜์ค€ ํ‘œํ˜„1 1. ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ ํ’€์ด 1. 1931๋ฒˆ - ํšŒ์˜์‹ค ๋ฐฐ์ • import sys N = int(sys.stdin.readline()) # meeting[0] : ์‹œ์ž‘ ์‹œ๊ฐ„ / meeting[1] : ๋๋‚˜๋Š” ์‹œ๊ฐ„ meeting = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] meeting.sort(key= lambda x : (x[1], x[0])) count = 1 prev = meeting[0][1] # ์•ž ํšŒ์˜ ๋๋‚˜๋Š” ์‹œ๊ฐ„ for i in range(1, N) : # ๋งŒ์•ฝ ํ˜„์žฌ ํšŒ์˜ ์‹œ์ž‘ ์‹œ๊ฐ„์ด ์•ž ํšŒ์˜ ์‹œ๊ฐ„๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด if prev people[i][1] : count += 1 interview = people[i][1] pr.. 2023. 5. 1.
[TIL] Algorithm - Greedy ๊ธฐ๋ณธ ๋ฌธ์ œ ํ’€์ด 1. ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (ํƒ์š• ์•Œ๊ณ ๋ฆฌ์ฆ˜) ํ•ญ์ƒ ๊ฐ ๋‹จ๊ณ„์— ์žˆ์–ด์„œ ๊ฐ€์žฅ ์ข‹์„ ๊ฑฐ๋ผ ์ƒ๊ฐ๋˜๋Š” ์„ ํƒ์„ ํ•œ๋‹ค. ์ด ์„ ํƒ์ด ์ „์ฒด์ ์œผ๋กœ ์ตœ์ ํ•ด๋กœ ์•ˆ๋‚ดํ•˜๊ฒŒ ๋  ๊ฑฐ๋ผ๋Š” ๋ฐ”๋žŒ์„ ๊ฐ€์ง€๊ณ  ๋ถ€๋ถ„์ ์œผ๋กœ ์ตœ์ ์ธ ์„ ํƒ์„ ํ•œ๋‹ค. ์–ธ์ œ๋‚˜ ์ตœ์ ์˜ ํ•ด๋‹ต์„ ๊ตฌํ•˜์ง€๋Š” ๋ชปํ•˜์ง€๋งŒ ๋งŽ์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๋ฅผ ๊ตฌํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. 1. 11047๋ฒˆ - ๋™์ „ 0 import sys N, K = map(int, sys.stdin.readline().split()) # ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค. coin = [int(sys.stdin.readline()) for _ in range(N)] count = 0 # ๋™์ „์˜ ๊ฐ€์น˜๊ฐ€ ๊ฐ€์žฅ ํฐ ๋™์ „๋ถ€ํ„ฐ ๋ฐ˜๋ณต ์‹œ์ž‘ for i in range(N-1, -1, -1) : if K == 0 : break # ํ˜„์žฌ K๋ณด๋‹ค ์ž‘์€ ์ˆ˜.. 2023. 4. 30.
[TIL] ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ ํ’€์ด2 1. 11049๋ฒˆ - ํ–‰๋ ฌ ๊ณฑ์…ˆ ์ˆœ์„œ 1. ์ตœ์  ๊ด„ํ˜ธ ๋ฌถ๊ธฐ์˜ ๊ตฌ์กฐ : n๊ฐœ์˜ ํ–‰๋ ฌ์„ ์–ด๋–ป๊ฒŒ ๊ณฑํ• ์ง€ ์• ๋งคํ•จ์„ ์—†์• ๊ธฐ ์œ„ํ•ด ๊ด„ํ˜ธ๋กœ ๋ฌถ๋Š”๋‹ค. ex) ((A1, A2), A3) or (A1, (A2, A3)) ์ด ๋ฌธ์ œ๋Š” n๊ฐœ์˜ ํ–‰๋ ฌ๋“ค์˜ ์ฒด์ธ ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ A1, A2, ... , An์˜ ์Šค์นผ๋ผ ๊ณฑ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ตœ์†Œํ™” ํ•˜๋„๋ก ๊ด„ํ˜ธ๋ฅผ ๋ฌถ์–ด๋ผ! ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. AiAi+1...Aj๋ฅผ ๊ด„ํ˜ธํ˜ธ ์ตœ์ ์œผ๋กœ ๋ฌถ๊ธฐ ์œ„ํ•ด Ak Ak+1์˜ ์‚ฌ์ด์—์„œ ๋‚˜๋ˆˆ๋‹ค๊ณ  ๊ฐ€์ • AiAi+1...Ak Ak+1Ak+2...Aj ์œ„์˜ ๋‘ ๋ถ€๋ถ„๋ฌธ์ œ๋Š” ๊ฐ๊ฐ ์ตœ์  ๊ด„ํ˜ธ ๋ฌถ๋Š” ๋ฐฉ๋ฒ•์ด ๋˜์–ด์•ผ ํ•œ๋‹ค. 2. ์žฌ๊ท€ํ•ด i == j ์ผ ๊ฒฝ์šฐ 0 i < j ์ผ ๊ฒฝ์šฐ → k, k+1๋กœ ๋‚˜๋ˆˆ๋‹ค. Ai = pi-1 * pi ๋ผ๋ฉด Ai..kAk+1..j = pi-1 *pk.. 2023. 4. 29.
[TIL] ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ ํ’€์ด 1. DP ๋ฌธ์ œ ํ’€์ด 1. 9084๋ฒˆ - ๋™์ „ import sys T = int(sys.stdin.readline()) for _ in range(T) : N = int(sys.stdin.readline()) coin = list(map(int, sys.stdin.readline().split())) M = int(sys.stdin.readline()) dp = [0] * (M+1) # ๊ฐ๊ฐ์˜ ๊ธˆ์•ก์— ๋Œ€ํ•œ ๋™์ „์œผ๋กœ ๋งŒ๋“ค ๋ชจ๋“  ๋ฐฉ๋ฒ•์˜ ์ˆ˜ ์ €์žฅ dp[0] = 1 # ๊ธฐ์ € ๊ฐ’์œผ๋กœ ์ง€์ • for c in coin : for i in range(1, M+1) : if i >= c : dp[i] += dp[i-c] print(dp[M]) ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ € ๋ฐฉ์‹์„ ์ƒ๊ฐํ•ด๋‚ด๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ํž˜๋“ค.. 2023. 4. 28.
[TIL] Algorithm - ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ณธ 1. ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ ํ’€์ด 1. 1388๋ฒˆ - ๋ฐ”๋‹ฅ ์žฅ์‹ import sys N, M = map(int, sys.stdin.readline().split()) graph = [list(sys.stdin.readline().strip()) for _ in range(N)] visited = [[0] * M for _ in range(N)] # ๊ฐ™์€ ํ–‰์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•˜๋ฏ€๋กœ ์—ด ๋ฒˆํ˜ธ ์ฆ๊ฐ€ def col(x, y) : visited[x][y] = 1 stack = [(x, y)] while stack : curx, cury = stack.pop() for i in range(1, M) : ny = cury + i if ny < M and graph[curx][ny] == '-' and visited[curx.. 2023. 4. 27.
[TIL] ์œ„์ƒ ์ •๋ ฌ ๋ฌธ์ œ ํ’€์ด + Computer System2 1. ์œ„์ƒ ์ •๋ ฌ ๋ฌธ์ œ ํ’€์ด 1. 2637๋ฒˆ - ์žฅ๋‚œ๊ฐ ์กฐ๋ฆฝ import sys from collections import deque N = int(sys.stdin.readline()) M = int(sys.stdin.readline()) basic = [[] for _ in range(N)] inDegree = [0] * N for _ in range(M) : x, y, k = map(int, sys.stdin.readline().split()) basic[y-1].append((x-1, k)) inDegree[x-1] += 1 def topologicalsort() : # component[x][y] -> x๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ํ•„์š”ํ•œ y์˜ ๊ฐœ์ˆ˜ component = [[0] * N for _ in range.. 2023. 4. 26.
[TIL] Algorithm - ์œ„์ƒ ์ •๋ ฌ + ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ 1. ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ ํ’€์ด 1. 2573๋ฒˆ - ๋น™์‚ฐ โ–ถ BFS๋ฅผ ์ด์šฉํ•œ ํ’€์ด import sys from collections import deque N, M = map(int, sys.stdin.readline().split()) iceberg = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] # ๋น™์‚ฐ ๋…น์ด๋Š” ํ•จ์ˆ˜ def melting() : change = [] for i in range(1, N-1) : for j in range(1, M-1) : if iceberg[i][j] != 0 : sea = 0 # ํ˜„์žฌ ์œ„์น˜์—์„œ 0๊ณผ ๋งž๋‹ฟ์•„ ์žˆ๋Š” ๊ฐœ์ˆ˜ for k in ran.. 2023. 4. 25.
[TIL] Algorithm - ๋‹ค์ต์ŠคํŠธ๋ผ + ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ ํ’€์ด(BFS) 1. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Dijkstra algorithm) ๋ชจ๋“  ๊ฐ„์„ ์— ๋Œ€ํ•œ ๊ฐ€์ค‘์น˜๊ฐ€ ํ•ญ์ƒ 0์ด์ƒ์ž„์„ ๊ฐ€์ •ํ•˜๊ณ  ๋‘ ๊ผญ์ง“์  ๊ฐ„์˜ ๊ฐ€์žฅ ์งง์„ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ„์„  ์™„ํ™”(Edge Relaxation) ์‹œ์ž‘ ์ •์  s์—์„œ ๋‹ค๋ฅธ ์ •์  v๊นŒ์ง€์˜ ์ดˆ๊ธฐ ๊ฑฐ๋ฆฌ ๊ฐ’์„ ๋ถ€์—ฌํ•˜๊ณ  ๋‹จ๊ณ„๋ฅผ ๊ฑฐ๋“ญํ•˜์—ฌ ๊ฐœ์„ ์‹œํ‚ค๋Š” ๊ฒƒ ๊ฐ„์„  (u, v)๋ฅผ ์™„ํ™”ํ•˜๋Š” ๊ณผ์ • u๋ฅผ ํ†ตํ•ด v๊นŒ์ง€ ๊ฐ€๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋ฐœ๊ฒฌ๋œ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, v์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ ์ถ”์ •๊ฐ’์„ ๊ฐฑ์‹ ํ•œ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„ O(|E| + |V|log|V|) https://ko.wikipedia.org/wiki/๋ฐ์ดํฌ์ŠคํŠธ๋ผ_์•Œ๊ณ ๋ฆฌ์ฆ˜ 1. ๋‹ค์ต์ŠคํŠธ๋ผ๋ฅผ ์ด์šฉํ•œ ๋ฌธ์ œ ํ’€์ด 1. 1916๋ฒˆ - ์ตœ์†Œ๋น„์šฉ ๊ตฌํ•˜๊ธฐ import sys import heapq N =.. 2023. 4. 24.
[TIL] ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ ๋ฌธ์ œ ํ’€์ด 1. ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ ํ’€์ด(DFS) 1. 1707๋ฒˆ - ์ด๋ถ„ ๊ทธ๋ž˜ํ”„ 1. ์ด๋ถ„ ๊ทธ๋ž˜ํ”„(bipartite graph)๋ž€? ๋ชจ๋“  ์ •์ ์„ ๋‘๊ฐ€์ง€ ์ƒ‰์œผ๋กœ ์น ํ•˜๋˜, ๋ชจ๋“  ๋ณ€์ด ๋‘๊ฐ€์ง€ ์ƒ‰์˜ ์ •์ ์„ ํฌํ•จํ•˜๋„๋ก ํ•˜๋Š” ๊ทธ๋ž˜ํ”„ ์œ„์˜ ์ด๋ฏธ์ง€์—์„œ ๋ณด๋ฉด ๋ชจ๋“  ๊ฐ„์„ ์ด ๋นจ๊ฐ•, ์ดˆ๋ก ์ •์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ฆ‰, ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์ •์ ์ด ๋‘ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ ์ง€๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ ๊ทธ๋ฃน์˜ ์ •์ ์ด ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ทธ๋ž˜ํ”„ https://gmlwjd9405.github.io/2018/08/23/algorithm-bipartite-graph.html 2. ๋ฐฑ์ค€ ์ œ์ถœ ํ’€์ด(DFS - ๋ฐ˜๋ณต) import sys K = int(sys.stdin.readline()) # dfs ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๊ตฌํ˜„ def dfs(g, n) : # n ์‹œ์ž‘ ์ •์  stack.. 2023. 4. 22.
[TIL] Algorithm - ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ + ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ณธ ๋ฌธ์ œ ํ’€์ด 1. ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ณธ ๋ฌธ์ œ ํ’€์ด 1. 5639๋ฒˆ - ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ import sys sys.setrecursionlimit(10**6) nums = [] # ์ž…๋ ฅ์ด ๋”์ด์ƒ ๋“ค์–ด์˜ค์ง€ ์•Š์„ ๋•Œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ # ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด while๋ฌธ ์ข…๋ฃŒ while True : try : nums.append(int(sys.stdin.readline())) except : break # nums์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค = start # nums์˜ ๋ ์ธ๋ฑ์Šค = end def post(start, end) : if start == end : # start์™€ end๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ # ํ•œ๊ฐ€์ง€ ๊ฒฝ์šฐ๋งŒ ์žˆ์œผ๋‹ˆ ์ถœ๋ ฅ print(nums[start]) return root = nums[start] # ํ˜„์žฌ ๋ฃจํŠธ ๋…ธ๋“œ mid = start for.. 2023. 4. 21.
[TIL] Graph + ํŠธ๋ฆฌ ์ˆœํšŒ 1. ๋ฌธ์ œ ํ’€์ด ์ •๋ฆฌ 1. 16120๋ฒˆ - PPAP import sys s = sys.stdin.readline().strip() stack = [] ppap = ["P", "P", "A", "P"] for i in s : stack.append(i) # ํ˜„์žฌ ์Šคํƒ์— PPAP๊ฐ€ ์žˆ์œผ๋ฉด 3๋ฒˆ popํ•˜์—ฌ P๋งŒ ๋‚จ๊ธด๋‹ค. if stack[-4:] == ppap : stack.pop() stack.pop() stack.pop() # ์ตœ์ข…์ ์œผ๋กœ P๋งŒ ๋‚จ์„ ๊ฒฝ์šฐ if stack == ["P"] : print("PPAP") else : print("NP") ๋ฌธ์ œ์—์„œ ์กฐ๊ฑด์„ ๋ณด๋ฉด PPAP ๋Š” P๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๊ณ  P ๋ฅผ PPAP๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์–ด๋–ค ๋ฌธ์ž์—ด์„ ๋ฐ›๊ณ  ์ด ๋ฌธ์ž์—ด์ด PPAP ๋ฌธ์ž์—ด์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด PPAP.. 2023. 4. 20.
[TIL] ์Šคํƒ๊ณ„์‚ฐ๊ธฐ + Hashing3 1. ์Šคํƒ์„ ์ด์šฉํ•œ ๊ณ„์‚ฐ๊ธฐ 1. ์‹ ํ‘œ๊ธฐ๋ฒ• ์ „์œ„ ํ‘œ๊ธฐ๋ฒ•(prefix, ํด๋ž€๋“œ ํ‘œ๊ธฐ๋ฒ•) : ์—ฐ์‚ฐ์ž๋ฅผ ์—ฐ์‚ฐ ๋Œ€์ƒ์˜ ์•ž์— ์“ฐ๋Š” ์—ฐ์‚ฐ ํ‘œ๊ธฐ๋ฒ• ex) *+234 ์žฅ์  : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์— ์˜ํ•ด ์ˆ˜ํ•™์  ํ‘œํ˜„์‹์— ๋Œ€ํ•œ ๋ฌธ๋ฒ•์œผ๋กœ์จ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ, ๊ณง๋ฐ”๋กœ ์ถ”์ƒ ๋ฌธ๋ฒ• ํŠธ๋ฆฌ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„๋˜๋ฉฐ, ์‚ฌ์‹ค ๋™์ผํ•˜๊ฒŒ ์ „๋‹จ์‚ฌ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ์  : ์‚ฌ๋žŒ์˜ ๋ˆˆ์œผ๋กœ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ฑฐ๋‚˜ ๊ณ„์‚ฐํ•˜๊ธฐ ํž˜๋“ค๋‹ค. ์ค‘์œ„ ํ‘œ๊ธฐ๋ฒ•(infix) : ์—ฐ์‚ฐ ๋Œ€์ƒ ์‚ฌ์ด์— ์—ฐ์‚ฐ์ž๋ฅผ ์“ฐ๋Š” ์—ฐ์‚ฐ ํ‘œ๊ธฐ๋ฒ• ex) (2+3)*4 ์žฅ์  : ์‚ฌ๋žŒ์—๊ฒŒ ์นœ์ˆ™ํ•˜๋‹ค. ๋‹จ์  : ์šฐ์„  ์ˆœ์œ„ ๊ทœ์น™์— ๋”ฐ๋ผ ์—ฐ์‚ฐ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜์—ฌ ๊ด„ํ˜ธ๋กœ ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋˜๋Š” ์˜๋„๋œ ์ˆœ์„œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”๋ฐ ํ•„์ˆ˜์ ์ด๋‹ค. ์ปดํ“จํ„ฐ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ•(postfix) : ์—ฐ์‚ฐ์ž๋ฅผ ์—ฐ์‚ฐ ๋Œ€์ƒ์˜.. 2023. 4. 19.
[TIL] ๋ถ„ํ•  ์ •๋ณต ์—ฐ์Šต๋ฌธ์ œ ํ’€์ด + Hashing2 1. ๋ถ„ํ•  ์ •๋ณต ์—ฐ์Šต๋ฌธ์ œ 1. 10830๋ฒˆ - ํ–‰๋ ฌ ์ œ๊ณฑ import sys N, B = map(int, sys.stdin.readline().split()) p = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] # ๋‘ ํ–‰๋ ฌ์„ ๊ณฑํ•˜๋Š” ํ•จ์ˆ˜ def mul (a, b) : result = [[0] * N for _ in range(N)] for r in range(N) : for c in range(N) : for i in range(N) : result[r][c] += a[r][i] * b[i][c] result[r][c] %= 1000 return result # ์ œ๊ณฑ๊ทผ์„ ๋ถ„ํ• ํ•˜๋Š” ํ•จ์ˆ˜ def getResult(p, b) : if b .. 2023. 4. 18.
[TIL] ์ž๋ฃŒ๊ตฌ์กฐ - ์šฐ์„ ์ˆœ์œ„ ํ 1. ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue) ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์œผ๋กœ ํž™์ด๋‚˜ ๋‹ค์–‘ํ•œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด ๊ตฌํ˜„๋œ๋‹ค. ๊ฐ ์›์†Œ๋“ค์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ–๊ณ  ์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ์›์†Œ๊ฐ€ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ์›์†Œ๋ณด๋‹ค ๋จผ์ € ์ฒ˜๋ฆฌ๋œ๋‹ค. ์ฆ‰, ์ž„์˜์˜ ์ˆœ์„œ๋กœ ์‚ฝ์ž…๋˜์ง€๋งŒ, ์ •ํ•ด์ง„ ์ˆœ์„œ๋กœ ์‚ญ์ œ๋œ๋‹ค. push() : ํ•˜๋‚˜์˜ ์›์†Œ๋ฅผ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ถ”๊ฐ€ pop() : ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ์›์†Œ๋ฅผ ํ์—์„œ ์ œ๊ฑฐ ํ›„ ๋ฐ˜ํ™˜ 1. ์šฐ์„ ์ˆœ์œ„ ํ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ(์ตœ์†Œํž™์œผ๋กœ ๊ตฌํ˜„) class PriorityQueue : def __init__(self) : # ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•  ๋ฆฌ์ŠคํŠธ๋Š” ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ๋ฅผ ๊ตฌํ˜„ # 0๋ฒˆ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด 0๋ฒˆ์— None ์‚ฝ์ž… self.items = [None] def __len__.. 2023. 4. 17.
[TIL] ๋ฐฑ์ค€ ํ’€์ด ์ •๋ฆฌ2 โ€ป ํ‰์ผ์— ํ’€์ง€ ์•Š๊ณ  ๋„˜๊ธด ๋ฌธ์ œ ํ’€์ด โ€ป 1. 8983๋ฒˆ - ์‚ฌ๋ƒฅ๊พผ import sys # M : ์‚ฌ๋Œ€ ๊ฐœ์ˆ˜ # N : ๋™๋ฌผ์˜ ์ˆ˜ # L : ์‚ฌ์ •๊ฑฐ๋ฆฌ M, N, L = map(int, sys.stdin.readline().split()) gun = list(map(int, sys.stdin.readline().split())) # ์‚ฌ๋Œ€์˜ ์œ„์น˜ gun.sort() animal = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] # ๋™๋ฌผ๋“ค์˜ ์œ„์น˜ def hunt(gun, animal) : count = 0 # ๋™๋ฌผ์˜ ์œ„์น˜๋ฅผ ๋ฐ˜๋ณต for x, y in animal : min_idx, max_idx = 0, len(gun)-1 # ๋™๋ฌผ์„ ์žก์„ .. 2023. 4. 16.
[TIL] ์ž๋ฃŒ๊ตฌ์กฐ - Queue + Hashing์ด๋ž€? 1. ์Šคํƒ ์—ฐ์Šต ๋ฌธ์ œ (10000๋ฒˆ - ์› ์˜์—ญ) import sys # https://wonyoung2257.tistory.com/79 ์ฐธ๊ณ  N = int(sys.stdin.readline()) circles = [] for i in range(N) : x, r = map(int, sys.stdin.readline().split()) circles.append((x-r, '(')) # ์ค‘์ ์„ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์— ์žˆ๋Š” ์ขŒํ‘œ circles.append((x+r, ')')) # ์ค‘์ ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์ขŒํ‘œ # x์ขŒํ‘œ ์ˆœ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ & ๊ฐ™์„ ๊ฒฝ์šฐ ')' ๋ฌธ์ž๋ฅผ ๊ฐ€์ง„ ๊ฐ’์ด ์•ž์œผ๋กœ ์˜ค๋„๋ก # ์•„์Šคํ‚ค ์ฝ”๋“œ : '(' = 72, ')' = 73 circles.sort(key = lambda x: (x[0].. 2023. 4. 15.
[TIL] Algorithm - ๋ถ„ํ• ์ •๋ณต + ์Šคํƒ 1. ์ด๋ถ„ ํƒ์ƒ‰ ๊ฐœ๋…์„ ์ด์šฉํ•œ ๋ฌธ์ œ ํ’€์ด (11053๋ฒˆ - ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด) import sys # A์˜ ํฌ๊ธฐ N = int(sys.stdin.readline()) # ์ˆ˜์—ด A = list(map(int, sys.stdin.readline().split())) # https://namu.wiki/w/์ตœ์žฅ%20์ฆ๊ฐ€%20๋ถ€๋ถ„%20์ˆ˜์—ด#s-3.2 ์ฐธ๊ณ  def LIS() : # d[i] = A[i]๋ฅผ ๋งˆ์ง€๋ง‰ ๊ฐ’์œผ๋กœ ๊ฐ€์ง€๋Š” ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€๋ถ€๋ถ„ ์ˆ˜์—ด ๊ธธ์ด d = [A[0]] for i in range(1, len(A)) : # d์— ์ €์žฅ๋œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๊ฐ’๋ณด๋‹ค ํ˜„์žฌ ๊ฐ’์ด ํฌ๋ฉด if d[-1] 0 ~ len(d)-1 ์‚ฌ์ด.. 2023. 4. 14.
728x90