๋ชฉ๋ก๐ฆฅ ์ฝํ /์ด๊ฒ์ด ์ฝ๋ฉ ํ ์คํธ๋ค with python (41)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
220213 ์์ฑ https://www.youtube.com/watch?v=Mw8W56qNL8U&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=34 1. ์๋ก์ ์งํฉ์ ํ์ฉํ ์ฌ์ดํด ํ๋ณ : ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ ๋ด์์์ ์ฌ์ดํด ํ๋ณ ( ๋ฐฉํฅ ๊ทธ๋ํ์์์ ์ฌ์ดํด ์ฌ๋ถ๋ DFS ๋ฅผ ์ด์ฉํ์ฌ ํ๋ณ ) : ์ฌ์ดํด ํ๋ณ ์๊ณ ๋ฆฌ์ฆ 1) ๊ฐ ๊ฐ์ ์ ํ๋์ฉ ํ์ธํ๋ฉฐ ๋ ๋ ธ๋์ ๋ฃจํธ ๋ ธ๋ ํ์ธ - ๋ฃจํธ ๋ ธ๋๊ฐ ์๋ก ๋ค๋ฅด๋ค๋ฉด ๋ ๋ ธ๋์ ๋ํ ํฉ์งํฉ ์ํ - ๋ฃจํธ ๋ ธ๋๊ฐ ์๋ก ๊ฐ๋ค๋ฉด ์ฌ์ดํด ๋ฐ์! 2) ๊ทธ๋ํ์ ํฌํจ๋์ด ์๋ ๋ชจ๋ ๊ฐ์ ์ ๋ํด 1๋ฒ ๊ณผ์ ๋ฐ๋ณต python # ํน์ ์์๊ฐ ์ํ ์งํฉ์ ์ฐพ๊ธฐ def find_parent(parent, x): # ๋ฃจํธ ๋ ธ๋๊ฐ ์๋๋ผ๋ฉด, ๋ฃจํธ ๋ ธ๋๋ฅผ ..
220213 ์์ฑ https://www.youtube.com/watch?v=Ha0w2dJa2Nk&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=33 1. ์๋ก์ ์งํฉ (Disjoint Sets)SS : ๊ณตํต ์์๊ฐ ์๋ ๋ ์งํฉ 2. ์๋ก์ ์งํฉ ์๋ฃ ๊ตฌ์กฐ : ์๋ก์ ๋ถ๋ถ ์งํฉ๋ค๋ก ๋๋์ด์ง ์์๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ -> ํฉ์งํฉ (union) : ๋ ๊ฐ์ ์์๊ฐ ํฌํจ๋ ์งํฉ์ ํ๋์ ์งํฉ์ผ๋ก ํฉ์น๋ ์ฐ์ฐ -> ์ฐพ๊ธฐ (find) : ํน์ ํ ์์๊ฐ ์ํ ์งํฉ์ด ์ด๋ค ์งํฉ์ธ์ง ์๋ ค์ฃผ๋ ์ฐ์ฐ : ํฉ์น๊ธฐ ์ฐพ๊ธฐ ์๋ฃ๊ตฌ์กฐ๋ผ ๋ถ๋ฆฐ๋ค 1) ํฉ์งํฉ ์ฐ์ฐ ํ์ธ, ์๋ก ์ฐ๊ฒฐ๋ ๋ ธ๋ A, B ํ์ธ - A์ B์ ๋ฃจํธ ๋ ธ๋ A', B' ๊ฐ๊ฐ ์ฐพ๊ธฐ - A'๋ฅผ B'์ ๋ถ๋ชจ ๋ ธ๋๋ก ์ค..
220213 ์์ฑ https://www.youtube.com/watch?v=liuUazQaLuU&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=32 ์ ๋ณด : N ๊ฐ์ ๋์๊ฐ ์๋ค : ๊ฐ ๋์์ ๋ฒํธ์ ํต๋ก๊ฐ ์ค์น๋์ด ์๋ ์ ๋ณด๊ฐ ์ฃผ์ด์ก์ ๋, ๋์ C ์์ ๋ณด๋ธ ๋ฉ์์ง๋ฅผ ๋ฐ๊ฒ ๋๋ ๋์์ ๊ฐ์๋ ๋ช๊ฐ, ๋์๋ค์ด ๋ชจ๋ ๋ฉ์์ง๋ฅผ ๋ฐ๋ ๋ฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ผ๋ง์ธ๊ฐ : ํ ๋์์์ ๋ค๋ฅธ ๋์๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ ๋ฌธ์ ๋ก ์นํ : ์ฐ์ ์์ ํ(HEAP)๋ฅผ ์ด์ฉํ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ python import heapq import sys input = sys.stdin.readline INF = int(1e9) # ๋ฌดํ์ ์๋ฏธํ๋ ๊ฐ์ผ๋ก 10์ต์ ์ค์ # ๋ ธ๋์ ๊ฐ์,..
220212 ์์ฑ https://www.youtube.com/watch?v=hw-SvAR3Zqg&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=31 1. ํ๋ก์ด๋ ์์ ์๊ณ ๋ฆฌ์ฆ : ๋ชจ๋ ๋ ธ๋์์ ๋ค๋ฅธ ๋ชจ๋ ๋ ธ๋๊น์ง์ ์ต๋จ ๊ฒฝ๋ก ๋ชจ๋ ๊ณ์ฐ : ๋จ๊ณ๋ณ๋ก ๊ฑฐ์ณ ๊ฐ๋ ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ์ํ ( ์ต๋จ ๊ฑฐ๋ฆฌ ๊ฐ๋ ๋ ธ๋ ์ฐพ๊ธฐ๋ ํ์ X ) : 2์ฐจ์ ํ ์ด๋ธ์ ์ต๋จ ๊ฑฐ๋ฆฌ ์ ๋ณด ์ ์ฅ : ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ์ ํ์ ์ํ๋ค : ๊ฐ ๋จ๊ณ๋ง๋ค ํน์ ํ ๋ ธ๋ K ๋ฅผ ๊ฑฐ์ณ ๊ฐ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ธ ( a ์์ b ๋ก ๊ฐ๋ ์ต๋จ ๊ฑฐ๋ฆฌ๋ณด๋ค a ์์ k ๋ฅผ ๊ฑฐ์ณ b ๋ก ๊ฐ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ ์งง์์ง ๊ฒ์ฌ ) 1) ์ต๋จ ๊ฑฐ๋ฆฌ ์ด๊ธฐํ 2) k ๋ ธ๋ ๊ฑฐ์ณ ๊ฐ๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ๋ฉฐ ํ ์ด๋ธ ๊ฐฑ์ python INF = i..
220212 ์์ฑ https://www.youtube.com/watch?v=F-tkqjUiik0&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=30 1. ์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ : ๊ฐ์ฅ ์งง์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ - ํ ์ง์ ์์ ๋ค๋ฅธ ํ ์ง์ ์ ์ต๋จ ๊ฒฝ๋ก - ํ ์ง์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ง์ ์ ์ต๋จ ๊ฒฝ๋ก - ๋ชจ๋ ์ง์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ง์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก : ๊ฐ ์ง์ ์ ๊ทธ๋ํ์์ ๋ ธ๋๋ก ํํ : ์ง์ ๊ฐ ์ฐ๊ฒฐ๋ ์ ์ ๊ทธ๋ํ์์ ๊ฐ์ ์ผ๋ก ํํ 2. ๋ค์ต์คํธ๋ผ ์ต๋จ ๊ฒฝ๋ก : ํน์ ํ ๋ ธ๋์์ ์ถ๋ฐํ์ฌ ๋ค๋ฅธ ๋ชจ๋ ๋ ธ๋๋ก ๊ฐ๋ ์ต๋จ ๊ฒฝ๋ก ๊ณ์ฐ : ์์ ๊ฐ์ ์ด ์์ ๋ ์ ์์ ์ผ๋ก ๋์ ( ํ์ค์ธ๊ณ ๋๋ก๋ ์์ ๊ฐ์ ์ผ๋ก ํํ๋์ง x ) : ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ถ๋ฅ ( ๋งค ์ํฉ์์ ๊ฐ์ฅ ๋น์ฉ์ด ์ ์..
220211 ์์ฑ https://www.youtube.com/watch?v=tWX6FZwwQMI&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=29 ๊ฐ๋ฏธ์ ์ฌ : ์ต์ํ ํ ์นธ ์ด์ ๋จ์ด์ง ์๋์ฐฝ๊ณ ๋ฅผ ์ฝํํ์! : ์ธ์ ํ ์๋์ฐฝ๊ณ ๊ณต๊ฒฉ๋ฐ์ผ๋ฉด ๋คํจ๋ค : ์๋์ฐฝ๊ณ N๊ฐ์ ๋ํ ์ ๋ณด๊ฐ ์ฃผ์ด์ก์ ๋, ์ป์ ์ ์๋ ์๋์ ์ต๋๊ฐ ๊ตฌํ๊ธฐ 1) a(i) = i๋ฒ์งธ ์๋์ฐฝ๊ณ ๊น์ง์ ์ต์ ์ ํด (์ป์ ์ ์๋ ์๋์ ์ต๋๊ฐ) 2) k(i) = i๋ฒ์จฐ ์๋์ฐฝ๊ณ ์ ์๋ ์๋์ ์ python # ์ ์ N์ ์ ๋ ฅ ๋ฐ๊ธฐ n = int(input()) # ๋ชจ๋ ์๋ ์ ๋ณด ์ ๋ ฅ ๋ฐ๊ธฐ array = list(map(int, input().split())) # ์์ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ..
220209 ์์ฑ https://www.youtube.com/watch?v=rWbjQphRE9A&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=28 1. ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ : ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ํ ์ฌ์ฉํ์ฌ ์ํ ์๊ฐ ํจ์จ์ฑ์ ๋น์ฝ์ ์ผ๋ก ํฅ์ : ์ด๋ฏธ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ (์์ ๋ฌธ์ )๋ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ์ฅ (๋ค์ ๊ณ์ฐ X) : ๋ ๊ฐ์ง ํ๋ค์ด(์์์ ์๋, ํํฅ์ ), ๋ณดํ ์ (์๋์์ ์, ์ํฅ์)์ผ๋ก ๊ตฌ์ฑ : ๋์ ๊ณํ๋ฒ : ์๋ฃ๊ตฌ์กฐ์์ ๋์ ํ ๋น์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ค์ ์คํ์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฒ => ๋ค์ด๋๋ฏน์ ๋ณ๋ค๋ฅธ ์๋ฏธ ์์ด ์ฌ์ฉ 1. ์ต์ ๋ถ๋ถ ๊ตฌ์กฐ (Optimal Substructure) : ํฐ ๋ฌธ์ ๋ฅผ ์์ ๋ฌธ์ ๋ก ๋๋ ์ ์์ผ๋ฉฐ, ์์ ๋ฌธ์ ์ ๋ต..
220209 ์์ฑ https://www.youtube.com/watch?v=jjOmN2_lmdk&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=27 1. ํ๋ผ๋ฉํธ๋ฆญ ์์น (Parametric Search) : ์ต์ ํ ๋ฌธ์ ๋ฅผ ๊ฒฐ์ ๋ฌธ์ (์ or ์๋์ค) ๋ก ๋ฐ๊พธ์ด ํด๊ฒฐ ( ํน์ ํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ฅ ์๋ง์ ๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ๋ ์ต์ ํ ๋ฌธ์ ) ๋ก๋ณถ์ด ๋ก ๋ง๋ค๊ธฐ : ์ ๋จ๊ธฐ์ ๋์ด(H) ๋ฅผ ์ง์ ํ๋ฉด, ์ค์ง์ด์ง ๋ก์ ํ ๋ฒ์ ์ ๋จ : ๋์ด๊ฐ H ๋ณด๋ค ๊ธด ๋ก์ H ์์ ๋ถ๋ถ์ด ์๋ฆฌ๊ณ , ๋ฎ์ ๋ก์ ์๋ฆฌ์ง ์์ : ์๋์ ์๋ฆฐ ๋ก ๊ธธ์ด๋ฅผ ๊ฐ์ ธ๊ฐ : ์๋์ด ์์ฒญํ ์ด ๊ธธ์ด๊ฐ M ์ผ ๋, ์ ์ด๋ M๋งํผ์ ๋ก์ ์ป๊ธฐ ์ํด, ์ ๋จ๊ธฐ์ ์ค์ ํ ์ ์๋ ๋์ด์ ์ต๋๊ฐ - ์ ์ ํ..