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

์ „์ฒด ๊ธ€67

[Week03] ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ ํŠธ๋ฆฌ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ Union Find โœ… ๊ฐœ๋… / ์›๋ฆฌ : ๋Œ€ํ‘œ์ ์ธ ํŠธ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ํ•ฉ์ง‘ํ•ฉ ์ฐพ๊ธฐ, ์„œ๋กœ์†Œ ์ง‘ํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ๋Š” ์ง‘ํ•ฉ(set)์„ ํ•ฉํ•˜๊ธฐ์œ„ํ•œ ์—ฐ์‚ฐ์ด๋‹ค. ์–‘๋ฑกํ–ฅ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ํ•ฉ์ง‘ํ•ฉ ์—ฐ์‚ฐ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์‹œ์ž‘ ๋ณต์žก๋„๊ฐ€ ์•ˆ์ข‹์•„ ํŠธ๋ฆฌ ํ˜•ํƒœ๋ฅผ ํ™œ์šฉํ•œ๋‹ค. ๋ถ€๋ชจ๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ํŠธ๋ฆฌ์ฒ˜๋Ÿผ ๋งํฌ๋ฅผ ๋งŒ๋“ค์–ด ์ง‘ํ•ฉ์„ ํ‘œํ˜„ํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํŠธ๋ฆฌ๊ฐ€ ํ•˜๋‚˜์˜ set์ด๋ฉฐ ํŠธ๋ฆฌ์˜ parents๋ฅผ ์ฐพ์•„ ์˜ฌ๋ผ๊ฐ€ ๋ฃจํŠธ๋ฅผ ๋งŒ๋‚˜๋ฉด ๋ฃจํŠธ๊ฐ’์ด ์ง‘ํ•ฉ์˜ ๋Œ€ํ‘œ๊ฐ’์ด๋‹ค. ๋‘๊ฐœ์˜ ์ง‘ํ•ฉ์— ๋ฃจํŠธ๊ฐ’์„ ์ฐพ์•„์„œ(find) ๋ฃจํŠธ๊ฐ’์ด ๋‹ค๋ฅด๋ฉด ํ•˜๋‚˜์˜ ํŠธ๋ฆฌ๋กœ ๋งŒ๋“ ๋‹ค.(union) > ํŠธ๋ฆฌ ๋†’์ด h๋งŒํผ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค. ์ง‘ํ•ฉ์˜ ํ•ฉ์ง‘ํ•ฉ ์‹œํ‚จ๋‹ค๋Š” ๊ฐœ๋…์„ ์ƒ๊ฐํ•˜๋ฉด ๋ฌธ์ œ ํ’€๋•Œ ํ—ท๊ฐˆ๋ ค์„œ ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„์˜ ๋ฃจํŠธ๋ฅผ ์ฐพ๋Š” .. 2022. 4. 20.
[Week02] ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ํ (feat. python) ๋ชจ๋“ˆ : ํ•จ์ˆ˜,๋ณ€์ˆ˜ ๋˜๋Š” ํด๋ž˜์Šค๋“ค์„ ๋ชจ์•„๋†“์€ ํŒŒ์ผ - ํŒŒ์ผ๋ช…์ด ๋ชจ๋“ˆ๋ช…์ด ๋œ๋‹ค. if __name__ == "__main__" ์˜ ์˜๋ฏธ ๐Ÿ‘‰ python์€ c๋‚˜ java์™€ ๋‹ค๋ฅด๊ฒŒ ์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ฐ˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋กœ ํŠน๋ณ„ํžˆ ์‹œ์ž‘ ์ง€์ ์ด ๋ช…์‹œ๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š์€ ์–ธ์–ด์ด๋‹ค. ๊ทธ๋ž˜์„œ ํŠน๋ณ„ํžˆ ๋ณ€์ˆ˜๋ฅผ ํ• ๋‹นํ•˜์—ฌ ํ˜„์žฌ ์ŠคํŠธ๋ฆฝํŠธ์˜ ์‹œ์ž‘์ ์ด ์–ด๋””์ธ์ง€ ํŒ๋‹จํ•˜๋Š”๋ฐ ๊ทธ ๋ณ€์ˆ˜๋กœ์„œ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด __name__ ์ด๋‹ค. ํŒŒ์ผ ์‹คํ–‰์‹œ์—๋Š” __name__ ๋ณ€์ˆ˜์— "__main__"์„ ์ €์žฅํ•˜๊ฒŒ ๋˜์ง€๋งŒ ํ•ด๋‹น ๋ชจ๋“ˆ์ด import ๋  ๊ฒฝ์šฐ ๋ณ€์ˆ˜์— "๋ชจ๋“ˆ๋ช…"์ด ๋“ค์–ด๊ฐ€๊ธฐ๋•Œ๋ฌธ์— if __name__ == "__main__" ๋ฌธ์€ ์‹คํ–‰๋˜์ง€์•Š๋Š”๋‹ค. __init__์˜ ์˜๋ฏธ ๐Ÿ‘‰ ์ƒ์„ฑ์ž์˜ ์˜๋ฏธ ( ์—ฌ๊ธฐ์„œ self๋Š” ์ธ์Šคํ„ด์Šค ์ž์‹ , ๋ฉ”์†Œ๋“œ์˜ ์ž„์˜์˜ ์ธ์ˆ˜ ์ •๋„์˜ ์˜๋ฏธ๋ฅผ .. 2022. 4. 14.
[Week02] ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์ด๋ถ„ํƒ์ƒ‰ [Week02] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‚ค์›Œ๋“œ - ์ด๋ถ„ํƒ์ƒ‰, ๋ถ„ํ• ์ •๋ณต, ์Šคํƒ, ํ, ์šฐ์„ ์ˆœ์œ„ ํ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์„ ํ˜•ํƒ์ƒ‰ / ์ด๋ถ„ ํƒ์ƒ‰ ์ด๋ถ„ํƒ์ƒ‰ ์ •๋ ฌ์ด ๋˜์–ด์žˆ๋Š” ๋ฐฐ์—ด์—์„œ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ™•์ธํ•˜๋Š” ๋Œ€์‹  ํƒ์ƒ‰์˜ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์—ฌ๋‚˜๊ฐ€๋Š” ํƒ์ƒ‰ ๋ฐฉ๋ฒ• ์ด๋ถ„ํƒ์ƒ‰ ์‚ฌ์šฉ์‹œ ์ฃผ์˜์‚ฌํ•ญ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์€ ์ •๋ ฌ๋˜์–ด์žˆ์–ด์•ผํ•œ๋‹ค. ๋ฌดํ•œ ๋ฃจํ”„์— ๋น ์ง€์ง€์•Š๊ฒŒ mid๊ฐ’์„ ์ž˜ ์ง€์ •ํ•ด์ค€๋‹ค ์ฐจ๋ก€๋กœ ์ฆ๊ฐ€(ํ˜น์€ ๊ฐ์†Œ)์‹œํ‚ค๋ฉด์„œ ํ’€์–ด์•ผํ•˜๋Š” ํƒ์ƒ‰๋ฌธ์ œ์— ํฐ ์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค๋ฉด ์ด๋ถ„ํƒ์ƒ‰์„ ๋– ์˜ฌ๋ ค๋ณด์ž. ์‹œ๊ฐ„๋ณต์žก๋„ O(logN) โœ… ์ด๋ถ„ํƒ์ƒ‰ ๊ตฌํ˜„ํ•˜๊ธฐ while๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ def binary_serch(a,n_list) : st = 0 en = n-1 while st a : en = mid -1 else : st = mid + .. 2022. 4. 9.
[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.
[Week01] ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์žฌ๊ท€ํ•จ์ˆ˜ [Week01] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‚ค์›Œ๋“œ - ์ •์ˆ˜๋ก , ๋ฐฐ์—ด, ๋ฌธ์ž์—ด, ์žฌ๊ท€ํ•จ์ˆ˜, ์ •๋ ฌ, ์™„์ „ํƒ์ƒ‰, ์‹œ๊ฐ„๋ณต์žก๋„ ์žฌ๊ท€ํ•จ์ˆ˜ ์ž‘์€ ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ ๋” ํฐ ๋ฌธ์ œ๋ฅผ ํ‘ผ๋‹ค ์ ˆ์ฐจ์  ์ง€ํ–ฅ์  ์‚ฌ๊ณ ๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ์ˆ˜ํ•™์  ๊ท€๋‚ฉ๋ฐฉ์‹์œผ๋กœ ์ƒ๊ฐํ•˜๊ธฐ ์ ํ™”์‹(๋‘๊ฐœ์˜ ํ•ญ ์‚ฌ์ด์— ์„ฑ๋ฆฝํ•˜๋Š” ๊ด€๊ณ„)๊ณผ ์ดˆํ•ญ ๊ตฌํ•˜๊ธฐ loop(๋ฐ˜๋ณต๋ฌธ)์™€ recursion(์žฌ๊ท€)์€ ์„œ๋กœ ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค ์žฌ๊ท€ํ•จ์ˆ˜๋Š” ์ž๊ธฐ์ž์‹ ์„ ๋ถ€๋ฅด๋Š” ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์ ˆ์ฐจ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ซ’์•„๊ฐ€๋ฉด ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ๊ท€๋‚ฉ๋ฒ•์ ์œผ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด์ƒ์ ์ด์ง€๋งŒ, ํž˜๋“ค๋‹ค๋ฉด ์ฒ˜์Œ ๋ถˆ๋ €๋˜ ํ•จ์ˆ˜์™€ ๊ทธ ์•ˆ์—์„œ ๋ถ€๋ฅธ ํ•จ์ˆ˜, ๊ทธ ์•ˆ์—์„œ ๋ถ€๋ฅธ ํ•จ์ˆ˜ ๋‹ค๋‹ค๋ฅธ ํ•œ์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ํ•จ์ˆ˜์ธ์ž์™€ depth๋ฅผ ์ ์–ด๊ฐ€๋ฉด์„œ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ํ•˜๋‚˜ํ•˜๋‚˜ ์ซ“์•„๊ฐ€๋Š” ๊ฒƒ๋„ ์ดํ•ดํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๊ตฌํ˜„๋ฐฉ๋ฒ• 1. ๋ฌธ์ œ์˜ ์ •์˜๋ฅผ ์ •.. 2022. 4. 7.
[SW์‚ฌ๊ด€ํ•™๊ต ์ •๊ธ€] ๋‚˜๋ฅผ ๋Œ์•„๋ณด๋Š” ์‹œ๊ฐ„ ์—์„ธ์ด ๊ณผ๊ฑฐ์— ๋Œ€ํ•œ ์„ฑ์ฐฐ ์ง€๋‚˜์˜จ ์‹œ๊ฐ„์„ ๋Œ์ด์ผœ๋ณด๋ฉด ๋‚˜๋Š” ๋„์ „ํ•˜๊ธฐ๋ณด๋‹จ ํ•ญ์ƒ ์•ˆ์ •์ ์ธ ์„ ํƒํ–ˆ์—ˆ๋‹ค. ๋‹น์‹œ์—๋Š” ๋‚ด๊ฐ€ ์•ˆ์ •์ ์ธ ์‚ถ์„ ์ถ”๊ตฌํ•˜๋Š” ์‚ฌ๋žŒ์ด๋ผ ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ ์ง€๊ธˆ ๋˜๋Œ์•„๋ณด๋ฉด ์‹คํŒจํ•˜๋Š”๊ฒŒ ๋‘๋ ค์›Œ์„œ ์•ˆ์ •์ ์ธ ๊ฒƒ์„ ์ข‹์•„ํ•œ๋‹ค๊ณ  ์Šค์Šค๋กœ ํ•ฉ๋ฆฌํ™”๋ฅผ ํ–ˆ๋˜๊ฒƒ๊ฐ™๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์€ ๊ณ„์†ํ•˜์˜€์œผ๋‚˜ ์ฐ”๋Ÿฌ๋ณด๊ธฐ์‹์œผ๋กœ๋งŒ ํ•˜๊ณ  ์žฌ๋Œ€๋กœ ๋„์ „ํ•˜์ง€ ๋ชปํ•œ์ฑ„ ๋ช‡๋…„์ด ํ˜๋ €๋‹ค. ํšŒ์‚ฌ๋ฅผ ๊ด€๋‘๊ณ  ์ •๊ธ€์— ์ž…์†Œํ•œ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ํฐ ๋„์ „์ด์˜€๋‹ค. ๋‚˜์—๊ฒŒ ์ฃผ์–ด์ง„ ์ด๋Ÿฌํ•œ ๊ธฐํšŒ๋ฅผ ์†Œ์ค‘ํžˆ ์—ฌ๊ธฐ๊ณ  ํ›„ํšŒํ•˜์ง€ ์•Š๋„๋ก ์ตœ์„ ์„ ๋‹คํ• ๊ฒƒ์ด๋‹ค. 5๊ฐœ์›” ๋™์•ˆ ์–ป์–ด๊ฐ€๊ณ  ์‹ถ์€ ๊ฒƒ ๐Ÿค” ์ •๊ธ€์„ ํ†ตํ•ด ๋งŽ์€ ๊ฒƒ๋“ค์„ ์–ป์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ๊ฒƒ์€ ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ข‹์€ ์Šต๊ด€์„ ๋“ค์ด๋Š”๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค. ์ข‹์€ ํ™˜๊ฒฝ์—์„œ ๊ณต๋ถ€ํ•˜๋Š” ๋ฐฉ์‹, ๊ฐœ๋ฐœ์ž์  ์‚ฌ๊ณ  ๋“ฑ ์ข‹์€ ์Šต๊ด€์„ ๋“ค์—ฌ์„œ ์ •๊ธ€ ํ›„์—๋„ ์ง€์†์ ์œผ๋กœ ๋ฐœ์ „๊ฐ€๋Šฅํ•œ.. 2022. 4. 2.