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

์•Œ๊ณ ๋ฆฌ์ฆ˜5

์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‚ค์›Œ๋“œ ์ •์ˆ˜๋ก , ๋ฐฐ์—ด, ๋ฌธ์ž์—ด, ์žฌ๊ท€ํ•จ์ˆ˜, ์ •๋ ฌ, ์™„์ „ํƒ์ƒ‰, ์‹œ๊ฐ„๋ณต์žก๋„ ์ด๋ถ„ํƒ์ƒ‰, ๋ถ„ํ• ์ •๋ณต, ์Šคํƒ, ํ, ์šฐ์„ ์ˆœ์œ„ ํ ๊ทธ๋ž˜ํ”„(vertex, edge, node, arc), BFS, DFS, ์œ„์ƒ์ •๋ ฌ ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ 2022. 9. 29.
[Week05] C์–ธ์–ด - Red Black Tree Red - Black Tree ๋ ˆ๋“œ ๋ธ”๋ž™ ํŠธ๋ฆฌ https://ko.wikipedia.org/wiki/๋ ˆ๋“œ-๋ธ”๋ž™_ํŠธ๋ฆฌ ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „ ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ(red-black tree)๋Š” ์ž๊ฐ€ ๊ท ํ˜• ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(self-balancing binary search tree)๋กœ์„œ, ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” ์—ฐ๊ด€ ๋ฐฐ์—ด ๋“ฑ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์“ฐ์ด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋‹ค. 1978๋…„ ๋ ˆ์˜ค ๊ท€๋ฐ”์Šค(Leo J. Guibas)์™€ ๋กœ๋ฒ„ํŠธ ko.wikipedia.org ์ด์ง„ ํƒ์ƒ‰ํŠธ๋ฆฌ์˜ ํ•œ ์ข…๋ฅ˜ BTS์˜ worst case์˜ ๋‹จ์ ์„ ๊ฐœ์„  - ์Šค์Šค๋กœ ๊ท ํ˜•์„ ๋งž์ถ”๋ฉฐ ํŽธํ–ฅ๋œ ํŠธ๋ฆฌ๊ฐ€ ๋˜์ง€์•Š๋„๋ก ํ•œ๋‹ค. ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋„ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(logN) ๊ทœ์น™ ๋ ˆ๋“œ์™€ ๋ธ”๋ž™์œผ๋กœ๋งŒ ์ด๋ฃจ์›Œ์ง„๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋Š” ๋ธ”๋ž™์ด๋‹ค. nil๋…ธ๋“œ๋Š” ๋ธ”๋ž™์ด๋‹ค. ๋ ˆ.. 2022. 5. 5.
[Week03] ์•Œ๊ณ ๋ฆฌ์ฆ˜ - DFS / BFS ๋ฐฑ์ค€ ๋ฌธ์ œ ๋‘ ๋ฌธ์ œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ธฐ์ค€์ด ์•ฝ๊ฐ„ ๋ชจํ˜ธํ•˜์ง€๋งŒ.. ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋งŒ๋‚ฌ๋˜ ๋ช‡๋ช‡ ์œ ํ˜•๋“ค์„ ๊นŒ๋จน์ง€์•Š๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•ด๋‘”๋‹ค. DFS / ๋ฐฑํŠธ๋ž˜ํ‚น nums = [1,2,3] result = [] permute = [] def dfs(): if len(permute) == len(nums) : result.append(permute[:]) return for i in range(len(nums)) : if nums[i] not in permute : permute.append(nums[i]) dfs() permute.pop() dfs() print(result) DFS 25731๋ฒˆ : ๋น™์‚ฐ https://www.acmicpc.net/problem/2573 2573๋ฒˆ: ๋น™์‚ฐ ์ฒซ ์ค„์—๋Š” ์ด์ฐจ์› ๋ฐฐ์—ด์˜ ํ–‰์˜ ๊ฐœ์ˆ˜์™€ ์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ.. 2022. 4. 21.
[Week03] ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ ํŠธ๋ฆฌ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ Union Find โœ… ๊ฐœ๋… / ์›๋ฆฌ : ๋Œ€ํ‘œ์ ์ธ ํŠธ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ํ•ฉ์ง‘ํ•ฉ ์ฐพ๊ธฐ, ์„œ๋กœ์†Œ ์ง‘ํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ๋Š” ์ง‘ํ•ฉ(set)์„ ํ•ฉํ•˜๊ธฐ์œ„ํ•œ ์—ฐ์‚ฐ์ด๋‹ค. ์–‘๋ฑกํ–ฅ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ํ•ฉ์ง‘ํ•ฉ ์—ฐ์‚ฐ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์‹œ์ž‘ ๋ณต์žก๋„๊ฐ€ ์•ˆ์ข‹์•„ ํŠธ๋ฆฌ ํ˜•ํƒœ๋ฅผ ํ™œ์šฉํ•œ๋‹ค. ๋ถ€๋ชจ๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ํŠธ๋ฆฌ์ฒ˜๋Ÿผ ๋งํฌ๋ฅผ ๋งŒ๋“ค์–ด ์ง‘ํ•ฉ์„ ํ‘œํ˜„ํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํŠธ๋ฆฌ๊ฐ€ ํ•˜๋‚˜์˜ set์ด๋ฉฐ ํŠธ๋ฆฌ์˜ parents๋ฅผ ์ฐพ์•„ ์˜ฌ๋ผ๊ฐ€ ๋ฃจํŠธ๋ฅผ ๋งŒ๋‚˜๋ฉด ๋ฃจํŠธ๊ฐ’์ด ์ง‘ํ•ฉ์˜ ๋Œ€ํ‘œ๊ฐ’์ด๋‹ค. ๋‘๊ฐœ์˜ ์ง‘ํ•ฉ์— ๋ฃจํŠธ๊ฐ’์„ ์ฐพ์•„์„œ(find) ๋ฃจํŠธ๊ฐ’์ด ๋‹ค๋ฅด๋ฉด ํ•˜๋‚˜์˜ ํŠธ๋ฆฌ๋กœ ๋งŒ๋“ ๋‹ค.(union) > ํŠธ๋ฆฌ ๋†’์ด h๋งŒํผ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค. ์ง‘ํ•ฉ์˜ ํ•ฉ์ง‘ํ•ฉ ์‹œํ‚จ๋‹ค๋Š” ๊ฐœ๋…์„ ์ƒ๊ฐํ•˜๋ฉด ๋ฌธ์ œ ํ’€๋•Œ ํ—ท๊ฐˆ๋ ค์„œ ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„์˜ ๋ฃจํŠธ๋ฅผ ์ฐพ๋Š” .. 2022. 4. 20.
[Week01] ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์ •๋ ฌ01 ์ •๋ ฌ01 โœ… ํŒŒ์ด์ฌ ๋‚ด์žฅํ•จ์ˆ˜ arr.sort() : ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ arr.sort(reverse = True) : ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ #๋ฐฑ์ค€11650 - key๊ฐ’์œผ๋กœ ์ •๋ ฌ arr = [] for _ in range(int(input())): arr.append(list(map(int, input().split()))) arr.sort(key=lambda x:(x[0], x[1])) #x[0]์˜ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ, ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด x[1]์œผ๋กœ ๋น„๊ต for e in arr: print(str(e[0]) + " " + str(e[1])) โœ… ๋ฒ„๋ธ” ์ •๋ ฌ : ์„œ๋กœ ์ธ์ ‘ํ•œ ๋‘ ์›์†Œ๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค. (swap) ์‹œ๊ฐ„๋ณต์žก๋„ O(N^2) def bubble_sort(arr): for i in range(len(arr) .. 2022. 4. 9.