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

python38

[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.
[TIL] Algorithm - ์ด๋ถ„ํƒ์ƒ‰(Binary Search) + ์ง์ ‘ ์ฃผ์†Œ ํ…Œ์ด๋ธ”์ด๋ž€? 1. ์ด๋ถ„ํƒ์ƒ‰ ๋˜๋Š” ์ด์ง„๊ฒ€์ƒ‰ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ณ„์†ํ•ด์„œ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ  ์›ํ•˜๋Š” ๊ฐ’์˜ ์œ„์น˜๋ฅผ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ Wiki ์žฅ์  : ๊ฒ€์ƒ‰์ด ๋ฐ˜๋ณต๋  ๋•Œ๋งˆ๋‹ค ๋ชฉํ‘œ๊ฐ’์„ ์ฐพ์„ ํ™•๋ฅ ์ด 2๋ฐฐ๊ฐ€ ๋˜๋ฏ€๋กœ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. → ์‹œ๊ฐ„๋ณต์žก๋„ O(logN) ๋‹จ์  : ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ๊ณผ์ • ์ฐธ๊ณ  ์‚ฌ์ดํŠธ https://blog.penjee.com/binary-vs-linear-search-animated-gifs/ Binary Vs Linear Search Through Animated Gifs Average Case Worst Case Binary Search Best Case Binary Search If you're into searching, maybe you're also into sorting! Check.. 2023. 4. 13.
[TIL] ๋ฐฑ์ค€ ํ’€์ด ์ •๋ฆฌ โ€ป ์‹œํ—˜์„ ์•ž๋‘๊ณ  Week01์ฃผ์ฐจ์— ๊ณต๋ถ€ํ–ˆ๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์—ฐ์Šตํ•œ๋‹ค. โ€ป 1. ์™„์ „ ํƒ์ƒ‰ ์—ฐ์Šต ๋ฌธ์ œ (14888๋ฒˆ - ์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ) import sys N = int(sys.stdin.readline()) nums = list(map(int, sys.stdin.readline().split())) plus, minus, multiply, divide = map(int, sys.stdin.readline().split()) # sys์ƒ ๊ฐ€์žฅ ํฐ์ˆ˜๋ฅผ ์ €์žฅ resultMax = -sys.maxsize resultMin = sys.maxsize ''' count : ํ˜„์žฌ ์ ‘๊ทผํ•˜๋Š” nums ์ธ๋ฑ์Šค total : ์•ž์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ plus, minus, multiply, divide : ๊ฐ ์—ฐ์‚ฐ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐœ์ˆ˜ .. 2023. 4. 12.
[TIL] ๋ฐฑ์ค€ ์ฝ”๋“œ ํ’€์ด & Computer System 1. ๋ฐฑ์ค€ - ์–ด๋ ค์› ๋˜ ๋ฌธ์ œ ์ •๋ฆฌ & ํ’€์ด ๊ณต๋ถ€ 1. N-Queen (9663๋ฒˆ) import sys n = int(sys.stdin.readline()) # row ๋ฆฌ์ŠคํŠธ์—์„œ ์ธ๋ฑ์Šค = ํ–‰๋ฒˆํ˜ธ / row[i] ๊ฐ’์€ ์—ด๋ฒˆํ˜ธ row = [0] * n result = 0 # https://seongonion.tistory.com/103 ์ฐธ๊ณ  # https://lighter.tistory.com/m/26 ์ฐธ๊ณ  # ํ€ธ์„ ๋†“์„ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์ธ์ง€ ์—ฌ๋ถ€ ํŒ๋‹จ def isPromising(x) : for i in range(x) : ''' 1. ๊ฐ™์€ ์—ด์— ์žˆ๋Š”์ง€ ํ™•์ธ row[x] == row[i] : x๋ฒˆ ํ–‰๊ณผ i๋ฒˆ ํ–‰์— ๋†“์—ฌ์žˆ๋Š” ํ€ธ์˜ ์—ด ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ 2. ๋Œ€๊ฐ์„ ์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ row[x]-row[i] : ์„ธ.. 2023. 4. 11.
[TIL] Algorithm - ์ •๋ ฌ3 + git ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ 1. ๋ณ‘ํ•ฉ ์ •๋ ฌ(merge sort) ๋ฐฐ์—ด์˜ ์•ž๋ถ€๋ถ„๊ณผ ๋’ท๋ถ€๋ถ„์˜ ๋‘ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ๊ฐ ์ •๋ ฌํ•œ ํ›„ ๋ณ‘ํ•ฉํ•˜๋Š” ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ # ๋ณ‘ํ•ฉ ์ •๋ ฌ ๊ตฌํ˜„ def merge_sort(list) : # ์žฌ๊ท€์ ์œผ๋กœ ์‹คํ–‰ํ•  ํ•จ์ˆ˜ def _merge_sort(list, left, right) : if left < right : middle = (left + right) // 2 _merge_sort(list, left, middle) # ๋ฐฐ์—ด์˜ ์•ž๋ถ€๋ถ„ ์ •๋ ฌ _merge_sort(list, middle+1, right) # ๋ฐฐ์—ด์˜ ๋’ท๋ถ€๋ถ„ ์ •๋ ฌ ''' ์•ž์—์„œ ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด 2๊ฐœ๋ฅผ ๋ณ‘ํ•ฉํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜๋“ค p : ํ˜„์žฌ buff๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ๋Š” ์ •๋„๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜ / ์ฆ‰, buff[p-1]๊นŒ์ง€ ์ฑ„์›Œ์ ธ์žˆ๋‹ค. j : ๋ณ‘ํ•ฉํ•  .. 2023. 4. 10.
[TIL] Algorithm - ์ •๋ ฌ2 1. ์‹œ๊ฐ„ ๋ณต์žก๋„ ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ Big-O(๋น…-์˜ค) ํ‘œ๊ธฐ๋ฒ• : ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹ Big-O description $$ O\left ( 1 \right ) $$ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์— ์ƒ๊ด€์—†์ด ์–ธ์ œ๋‚˜ ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค. $$ O\left ( log_{2}n \right ) $$ ์ž…๋ ฅ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ฒ˜๋ฆฌ์‹œ๊ฐ„์ด ๋กœ๊ทธ๋งŒํผ ์งง์•„์ง„๋‹ค. $$ O\left ( n \right ) $$ ์ž…๋ ฅ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•œ๋‹ค. $$ O\left ( n log_{2}n \right ) $$ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ๋กœ๊ทธ๋ฐฐ ๋ฐฐ๋งŒํผ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•œ๋‹ค. $$ O\left ( n^{2} \right ) $$ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ๊ธ‰์ˆ˜์ ์œผ๋กœ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•œ๋‹ค. $$ O\left.. 2023. 4. 9.
[TIL] Algorithm - ์ •๋ ฌ โฐ 2023.04.08 โฐ 1. Sorting key ๋ฅผ ํ•ญ๋ชฉ ๊ฐ’์˜ ๋Œ€์†Œ ๊ด€๊ณ„์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์ผ์ •ํ•œ ์ˆœ์„œ๋กœ ๋ฐ”๊พธ์–ด ๋Š˜์–ด๋†“๋Š” ์ž‘์—… ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜, ์„ ํƒ, ์‚ฝ์ž…ํ•˜๋ฉด์„œ ์ •๋ ฌ์„ ์™„๋ฃŒํ•œ๋‹ค. โ˜… ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์•ˆ์ „์„ฑ โ˜… ๊ฐ’์ด ๊ฐ™์€ ์›์†Œ์˜ ์ˆœ์„œ๋Š” ์ •๋ ฌํ•œ ํ›„์—๋„ ์œ ์ง€๋˜๋ฉด ์•ˆ์ •์ ์ธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์•ˆ์ •์ ์ธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฒ„๋ธ” ์ •๋ ฌ, ์‚ฝ์ž… ์ •๋ ฌ, ๋ณ‘ํ•ฉ ์ •๋ ฌ, ๋„์ˆ˜ ์ •๋ ฌ(๊ณ„์ˆ˜ ์ •๋ ฌ) ์•ˆ์ •์ ์ด์ง€ ์•Š๋Š” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ ์ •๋ ฌ, ํ€ต ์ •๋ ฌ, ํž™ ์ •๋ ฌ, 2. ๋ฒ„๋ธ” ์ •๋ ฌ(bubble sort) ์ด์›ƒํ•œ ๋‘ ์›์†Œ์˜ ๋Œ€์†Œ ๊ด€๊ณ„๋ฅผ ๋น„๊ตํ•˜์—ฌ ํ•„์š”์— ๋”ฐ๋ผ ๊ตํ™˜์„ ๋ฐ˜๋ณตํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ( = ๋‹จ์ˆœ ๊ตํ™˜ ์ •๋ ฌ ) ์‹œ๊ฐ„๋ณต์žก๋„ O(n^2) 1. ๊ธฐ๋ณธ ๊ตฌํ˜„ # ๊ธฐ๋ณธ ๋ฒ„๋ธ” ์ •๋ ฌ def bubble_sort(list) : n = len(list).. 2023. 4. 8.
[Python] Stack๊ณผ Queue์‚ฌ์šฉํ•ด๋ณด๊ธฐ 1. Stack LIFO(Last In First Out) = FILO(First In Last Out) ๋‚˜์ค‘์— ๋“ค์–ด์˜จ ๊ฐ’์ด ๋จผ์ € ๋‚˜๊ฐ€๋Š” ์ž๋ฃŒ๊ตฌ์กฐ โ˜… list๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ์Šคํƒ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ โ˜… # ํŒŒ์ด์ฌ์—์„œ ์Šคํƒ์€ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค. stack = [] # ์Šคํƒ์— ๊ฐ’ ์ถ”๊ฐ€ํ•˜๊ธฐ stack.append(1) stack.append(2) stack.append(3) print("stack์— ์‚ฝ์ž…ํ•œ ํ›„ : ",stack) # ์Šคํƒ์—์„œ ๊ฐ’ ์ œ๊ฑฐํ•˜๊ธฐ print("์ฒซ๋ฒˆ์งธ pop : ",stack.pop()) print("popํ•œ ํ›„ ์Šคํƒ : ", stack) print("๋‘๋ฒˆ์งธ pop : ",stack.pop()) print("popํ•œ ํ›„ ์Šคํƒ : ", stack) print("์„ธ๋ฒˆ์งธ pop : ",stack... 2023. 3. 21.
[Python] ๋ฆฌ์ŠคํŠธ(List) ๊ฐœ๋… ์ •๋ฆฌ https://wikidocs.net/book/1 ์ ํ”„ ํˆฌ ํŒŒ์ด์ฌ ์ด ์ฑ…์€ ํŒŒ์ด์ฌ์ด๋ž€ ์–ธ์–ด๋ฅผ ์ฒ˜์Œ ์ ‘ํ•ด๋ณด๋Š” ๋…์ž๋“ค๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•œ ๋ฒˆ๋„ ํ•ด ๋ณธ์ ์ด ์—†๋Š” ์‚ฌ๋žŒ๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ „๋ฌธ์ ์ธ ์šฉ์–ด๋“ค์„ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ํ’€์–ด์„œ … wikidocs.net ๋ฆฌ์ŠคํŠธ(List) listName = [์š”์†Œ1, ์š”์†Œ2, ์š”์†Œ3, ...] ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ์œ„์—์„œ ๋ณด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๋Œ€๊ด„ํ˜ธ([ ])๋กœ ๊ฐ์‹ธ ์ฃผ๊ณ  ๊ฐ ์š”์†Ÿ๊ฐ’์€ ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„ํ•ด ์ค€๋‹ค. ๋˜๋Š” list() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. # list() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ listFunction = list("python") print(listFunction) # ๋น„์–ด์žˆ๋Š” ๋ฆฌ์ŠคํŠธ -> emptyList = list() ๋กœ ์ƒ์„ฑ๊ฐ€๋Šฅ emp.. 2023. 3. 20.
728x90