๐๋ฌธ์ ํ์ด
[Python] ๋ฐฑ์ค 21924 ๋์ ๊ฑด์ค | ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/21924 21924๋ฒ: ๋์ ๊ฑด์ค ์ฒซ ๋ฒ์งธ ์ค์ ๊ฑด๋ฌผ์ ๊ฐ์ $N$ $(3 \le N \le 10^5 )$์ ๋๋ก์ ๊ฐ์ $M$ $(2 \le M \le min( {N(N-1) \over 2}, 5×10^5)) $๊ฐ ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค ๋ถํฐ $M + 1$์ค๊น์ง ๊ฑด๋ฌผ์ ๋ฒํธ $a$, $b$ $(1 \le a, b \le N, a ≠ b)$์ ๋ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ ์์ฑ ์ฝ๋ import sys input = sys.stdin.readline N, M = map(int, input().split()) parent = [i for i in range(N..
[Python] ๋ฐฑ์ค 19368 ํ์ฑ ์ฐ๊ฒฐ | ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/19368 14621๋ฒ: ๋๋ง ์๋๋ ์ฐ์ ์ ๋ ฅ์ ์ฒซ์งธ ์ค์ ํ๊ต์ ์ N์ ํ๊ต๋ฅผ ์ฐ๊ฒฐํ๋ ๋๋ก์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. (2 ≤ N ≤ 1,000) (1 ≤ M ≤ 10,000) ๋์งธ ์ค์ ๊ฐ ํ๊ต๊ฐ ๋จ์ด ๋ํ๊ต๋ผ๋ฉด M, ์ฌ์ด ๋ํ๊ต๋ผ๋ฉด W์ด ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ์ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ ์์ฑ ์ฝ๋ import sys input = sys.stdin.readline n = int(input()) edges = [] # ๋น์ฉ ์ค๋ฆ์ฐจ์์ ์ํ ๋ฆฌ์คํธ parent = [i for i in range(n+1)] # ์๋ก์ ์งํฉ (๋ณธ์ธ์ ๋ถ๋ชจ๋ก ๊ฐ๋๋ก ์ด๊ธฐํ) f..
[Python] ๋ฐฑ์ค 14621 ๋๋ง ์๋๋ ์ฐ์ | ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/14621 14621๋ฒ: ๋๋ง ์๋๋ ์ฐ์ ์ ๋ ฅ์ ์ฒซ์งธ ์ค์ ํ๊ต์ ์ N์ ํ๊ต๋ฅผ ์ฐ๊ฒฐํ๋ ๋๋ก์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. (2 ≤ N ≤ 1,000) (1 ≤ M ≤ 10,000) ๋์งธ ์ค์ ๊ฐ ํ๊ต๊ฐ ๋จ์ด ๋ํ๊ต๋ผ๋ฉด M, ์ฌ์ด ๋ํ๊ต๋ผ๋ฉด W์ด ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ์ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ - school : ์ ์ ๋ณ ํ๊ต ์ฑ๋ณ - parent : ์ ์ ๋ณ ์๋ก์ ์งํฉ ์ ๋ณด - edges : ๊ฐ์ ์ ๋น์ฉ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ณด ์ ์ฅ - ์ ๋ ฌ๋ edges๋ฅผ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํ๋ฉฐ ์ฌ์ดํด์ด ๋ฐ์ํ์ง ์์ผ๋ฉด ์ฐ๊ฒฐ - ์๋ก์ ์งํฉ์ด ์ ์ ๋ณธ์ธ๊ณผ ๊ฐ์ ์ ์ ์ ๊ฐ์..
[Python] ๋ฐฑ์ค 6497 ์ ๋ ฅ๋ | ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/6497 6497๋ฒ: ์ ๋ ฅ๋ ์ฑ์ง์ด๋ ํ ๋์์ ์์ฅ์ธ๋ฐ ๊ฑฐ์ง๋ผ์ ์ ๋ ฅ๋์ ๋๋๋๋ค. ๊ทธ๋์ ๋ชจ๋ ๊ธธ๋ง๋ค ์๋ ์ผ์ ธ ์๋ ๊ฐ๋ก๋ฑ ์ค ์ผ๋ถ๋ฅผ ์๋ฑํ๊ธฐ๋ก ํ์๋ค. ๊ธธ์ ๊ฐ๋ก๋ฑ์ ์ผ ๋๋ฉด ํ๋ฃจ์ ๊ธธ์ ๋ฏธํฐ ์๋งํผ ๋์ด ๋ค www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ํฌ๋ฃจ์ค์นผ (์ต์ ์คํจ๋ ํธ๋ฆฌ) ์๊ณ ๋ฆฌ์ฆ - find ํจ์ : ๋ถ๋ชจ ๋ ธ๋(์ด๋ ์งํฉ์ ์ํ๋์ง) ํ์ธ - union ํจ์ : ์ ์ a, b๋ฅผ ๊ฐ์ ์งํฉ์ ์ํ๋๋ก parent ์ ๋ฐ์ดํธ - ์ฌ๋ฌ ํ ์คํธ์ผ์ด์ค ์์ผ๋ฏ๋ก n, m์ด 0, 0 ์ผ๋ ์ข ๋ฃ ์กฐ๊ฑด์ผ๋ก ๋ฌดํ ๋ฐ๋ณต - edges : ๊ฐ์ ์ ๋น์ฉ ๊ธฐ์ค ์ค๋ฆ์ฐจ์์ผ๋ก ์ ์ฅ - parent : ๊ฐ ..
[Python] ๋ฐฑ์ค 4386 ๋ณ์๋ฆฌ ๋ง๋ค๊ธฐ | ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/4386 4386๋ฒ: ๋ณ์๋ฆฌ ๋ง๋ค๊ธฐ ๋ํ์ด๋ ์ฐ์ฃผ์ ์ ์ด๋ค. ์ด์ ๋ํ์ด๋ ์๋ฌด๋ ๊ฒ๋ ๋๋ธ๋ฌ์ ธ ์๋ n๊ฐ์ ๋ณ๋ค์ ์ด์ด์ ๋ณ์๋ฆฌ๋ฅผ ํ๋ ๋ง๋ค ๊ฒ์ด๋ค. ๋ณ์๋ฆฌ์ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค. ๋ณ์๋ฆฌ๋ฅผ ์ด๋ฃจ๋ ์ ์ ์๋ก ๋ค๋ฅธ ๋ ๋ณ์ ์ผ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ํฌ๋ฃจ์ค์นผ (์ต์ ์คํจ๋ ํธ๋ฆฌ) ์๊ณ ๋ฆฌ์ฆ - alist : ๊ฐ ์ ์ ์ x, y ์ ๋ณด ์ ์ฅ - edges : ์ ์ ๊ฐ ๋ชจ๋ ๊ฐ์ ๊ธธ์ด( sqrt((x1 - x2)**2 + (y1 - y2)**2) ) ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ์ฅ - parent : ์งํฉ์ ๋ณด ( ์ฐ๊ฒฐ๋ ์ ์ ์ ๋ณด) - find ํจ์ : ๊ฐ์ ์งํฉ์ ์ํด์๋์ง ํ์ธ - unio..
[Python] ๋ฐฑ์ค 1922 ๋คํธ์ํฌ ์ฐ๊ฒฐ | ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/1922 1922๋ฒ: ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ด ๊ฒฝ์ฐ์ 1-3, 2-3, 3-4, 4-5, 4-6์ ์ฐ๊ฒฐํ๋ฉด ์ฃผ์ด์ง output์ด ๋์ค๊ฒ ๋๋ค. www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ (์ต์ ์คํจ๋ ํธ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ) - ์๋ก์ ์งํฉ์ ์ํ find_parent, union_parent ํจ์ - edges : ๊ฐ์ ๋น์ฉ, ๊ฐ์ a, ๊ฐ์ b๋ฅผ ์ ์ฅํ์ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ์ฅ - parent : ๊ฐ ์ ์ ๋ณ ์งํฉ ์ ๋ณด ์ ์ฅ - ์ ๋ ฌ๋ edges ๋ฅผ ํ๋์ฉ ๋ฐฉ๋ฌธํ๋ฉฐ ์ฌ์ดํด์ด ๋ฐ์ํ์ง ์๋๋ค๋ฉด ๊ฐ์ ์ฐ๊ฒฐ - find_parent(a) != find_parent(b) ์ฆ, ๊ฐ์ ์งํฉ์ ์ํด์์ง ์๋ค ..
[Python] ๋ฐฑ์ค 1647 ๋์ ๋ถํ ๊ณํ | ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/1647 1647๋ฒ: ๋์ ๋ถํ ๊ณํ ์ฒซ์งธ ์ค์ ์ง์ ๊ฐ์ N, ๊ธธ์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. N์ 2์ด์ 100,000์ดํ์ธ ์ ์์ด๊ณ , M์ 1์ด์ 1,000,000์ดํ์ธ ์ ์์ด๋ค. ๊ทธ ๋ค์ ์ค๋ถํฐ M์ค์ ๊ฑธ์ณ ๊ธธ์ ์ ๋ณด๊ฐ A B C ์ธ ๊ฐ์ ์ ์๋ก ์ฃผ์ด์ง๋๋ฐ A๋ฒ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ์ต์ ์คํจ๋ ํธ๋ฆฌ ๋ฌธ์ (ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ) - edges : ๊ฐ์ ๋น์ฉ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ์ฅํ ๋ฆฌ์คํธ - parent : ์๋ก์ ์งํฉ ์ ๋ณด ์ ์ฅํ ๋ฆฌ์คํธ - find_parent(x) : ์๋ก ๊ฐ์ ์งํฉ์ ์ํด์๋์ง ํ์ธํ๋ ํจ์ - union_parent(a, b) : a, b ์ ์ ์ ๋ํด..
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์์ | ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/49191 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ํ๋ก์ด๋ ์์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํด๊ฒฐ ๊ฐ๋ฅํ ๋ฌธ์ - ์ ์ i๊ฐ 1๋ถํฐ N๊น์ง ๋ชจ๋ ์ ์ ์ผ๋ก ๊ฐ ์ ์๋ค๋ฉด ์์๋ฅผ ์ ์ ์๋ค. - ์ด๊ธฐ ์ธ์ ํ๋ ฌ์ ๋ฌดํ์๋ก ์ด๊ธฐํ, ์ฐ๊ด์ด ์๋ ๋ ์ ์ results๋ 1๋ก ์ด๊ธฐํํ๋ค. ์ด๋ 1๋ฒ์ ๊ฑธ์ณ a ์ ์ ๊ณผ b ์ ์ ์ด ๊ด๊ณ๊ฐ ์๋ค๋ ๋ป์ด๋ค. - a ์ ์ ์์ b ์ ์ ์ผ๋ก ๋ฐ๋ก ๊ฐ๋ ๋ฐฉ๋ฒ (a..
[Python] ๋ฐฑ์ค 1197 ์ต์ ์คํจ๋ ํธ๋ฆฌ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/1197 1197๋ฒ: ์ต์ ์คํจ๋ ํธ๋ฆฌ ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ V(1 ≤ V ≤ 10,000)์ ๊ฐ์ ์ ๊ฐ์ E(1 ≤ E ≤ 100,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ E๊ฐ์ ์ค์๋ ๊ฐ ๊ฐ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ์ธ ์ ์ A, B, C๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋ A๋ฒ ์ ์ ๊ณผ B๋ฒ ์ ์ ์ด www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ๋ฌธ์ ์ด๋ฆ์์ ์ ์ ์๋ฏ ์ต์ ์คํจ๋ ํธ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ ๋๋ค. - parent : ์๋ก์ ์งํฉ ๊ฐ๋ ์์ ๊ฐ ์ ์ ์ด ์ด๋ ์งํฉ์ ์ํด์๋์ง ์ ๋ณด๋ฅผ ์ ์ฅ - edges : ๊ฐ์ ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ. ๊ฐ์ฅ ์์ ๋น์ฉ์ด ๋ฐ์ํ๋ ๊ฐ์ ๋ถํฐ ์ฐ๊ฒฐํด๋๊ฐ๋ค - find_parent : ํด๋น..