โ๏ธ ์ฝํ
์ค๋น/Brute Force
2021.01.11
www.acmicpc.net/problem/2231 2231๋ฒ: ๋ถํดํฉ ์ด๋ค ์์ฐ์ N์ด ์์ ๋, ๊ทธ ์์ฐ์ N์ ๋ถํดํฉ์ N๊ณผ N์ ์ด๋ฃจ๋ ๊ฐ ์๋ฆฌ์์ ํฉ์ ์๋ฏธํ๋ค. ์ด๋ค ์์ฐ์ M์ ๋ถํดํฉ์ด N์ธ ๊ฒฝ์ฐ, M์ N์ ์์ฑ์๋ผ ํ๋ค. ์๋ฅผ ๋ค์ด, 245์ ๋ถํดํฉ์ 256(=245+2+4+5)์ด www.acmicpc.net ์
๋ ฅ ์ฒซ์งธ ์ค์ ์์ฐ์ N(1 ≤ N ≤ 1,000,000)์ด ์ฃผ์ด์ง๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ๋ต์ ์ถ๋ ฅํ๋ค. ์์ฑ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ 0์ ์ถ๋ ฅํ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ 1๋ถํฐ ์
๋ ฅ ๊ฐ๊น์ง ๋ชจ๋ ์๋ฅผ ํ์ํด์ ๋ถํดํฉ์ด ์
๋ ฅ ๊ฐ์ ๊ฐ์์ง๋ฉด ์ด ๊ฐ์ ์ถ๋ ฅํ๊ณ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ํ์์ง๋ง ์
๋ ฅ ๊ฐ๊ณผ ๊ฐ์ ๊ฐ์ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ 0์ ์ถ๋ ฅํ๋ค. ํด๊ฒฐ ๊ณผ์ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ ํน์ ์์ ๋ถํดํฉ์ ๊ตฌํ๋ค. ์ด ๋ถํด..
โ๏ธ ์ฝํ
์ค๋น/Brute Force
2021.01.07
www.acmicpc.net/problem/2798 2798๋ฒ: ๋ธ๋์ญ ์ฒซ์งธ ์ค์ ์นด๋์ ๊ฐ์ N(3 ≤ N ≤ 100)๊ณผ M(10 ≤ M ≤ 300,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ์นด๋์ ์ฐ์ฌ ์๋ ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, ์ด ๊ฐ์ 100,000์ ๋์ง ์๋ ์์ ์ ์์ด๋ค. ํฉ์ด M์ ๋์ง ์๋ ์นด๋ 3์ฅ www.acmicpc.net ์
๋ ฅ ์ฒซ์งธ ์ค์ ์นด๋์ ๊ฐ์ N(3 ≤ N ≤ 100)๊ณผ M(10 ≤ M ≤ 300,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ์นด๋์ ์ฐ์ฌ ์๋ ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, ์ด ๊ฐ์ 100,000์ ๋์ง ์๋ ์์ ์ ์์ด๋ค. ํฉ์ด M์ ๋์ง ์๋ ์นด๋ 3์ฅ์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ๋ง ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ M์ ๋์ง ์์ผ๋ฉด์ M์ ์ต๋ํ ๊ฐ๊น์ด ์นด๋ 3์ฅ์ ํฉ์ ์ถ๋ ฅํ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ ๋ชจ๋ ๊ฒฝ..
โน๏ธ ๋ผ์ดํ/2020 ๊ฒจ์ธ๋ฐฉํ ๋ชจ๊ฐ์ฝ(๊ฐ์ธ)
2021.01.05
- ๋ชฉํ - codekodo.tistory.com/12 [์ฝ๋
ํ๊ตฌ๋ง ํ] 2021.01.05(ํ) - 3์ฃผ์ฐจ ๊ฐ์ธ ๋ชฉํ ๋ชฉํ : LCA(Lowest Common Ancestor) ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋
๋ฐ ์ค์ต ๋ฌธ์ ๋ฅผ ๋ณต์ตํ๊ณ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํตํด ์ค์ ๋ฌธ์ ์ ์ ์ฉํด๋ณธ๋ค. ์ค์ต์ ์ด 4๋ฌธ์ ๋ก ์๊ณ ๋ฆฌ์ฆ ์์
์๊ฐ์ด ์งํ๋์๋ ์ค์ต ๋ฌธ์ ์ด๋ค. 1. root ์ฐพ๊ธฐ codekodo.tistory.com LCA(Lowest Common Ancestor) ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋
๋ฐ ์ค์ต ๋ฌธ์ ๋ฅผ ๋ณต์ตํ๊ณ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํตํด ์ค์ ๋ฌธ์ ์ ์ ์ฉํด๋ด์ผ๋ก์จ ์๊ณ ๋ฆฌ์ฆ ๋์๋ฐฉ์์ ๋ํด ์๊ฒ ๋์๋ค. ์ค์ต์์ ๋ฐฐ์ด ๋ฐฉ์์ผ๋ก ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ์ ๊ทผํ์์ง๋ง ์์ง ํ์ง ๋ชปํ์๋ค. ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก LCA๋ฅผ ์ ๊ทผํด๋ณด๋ ค๊ณ ํ๋ค. 1. root ์ฐพ๊ธฐ def main():..
โน๏ธ ๋ผ์ดํ/2020 ๊ฒจ์ธ๋ฐฉํ ๋ชจ๊ฐ์ฝ(๊ฐ์ธ)
2021.01.05
๋ชฉํ : LCA(Lowest Common Ancestor) ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋
๋ฐ ์ค์ต ๋ฌธ์ ๋ฅผ ๋ณต์ตํ๊ณ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํตํด ์ค์ ๋ฌธ์ ์ ์ ์ฉํด๋ณธ๋ค. ์ค์ต์ ์ด 4๋ฌธ์ ๋ก ์๊ณ ๋ฆฌ์ฆ ์์
์๊ฐ์ด ์งํ๋์๋ ์ค์ต ๋ฌธ์ ์ด๋ค. 1. root ์ฐพ๊ธฐ ์ด์ง ํธ๋ฆฌ์ ๋
ธ๋์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๊ณ , ๋
ธ๋์ key์ ์์๋ค์ด ์ฃผ์ด์ก์ ๋ ํด๋น ํธ๋ฆฌ์ root๋ฅผ ์ฐพ์ผ์์ค. [์
๋ ฅ ๊ฐ] 6 # N D . . # ๊ฐ์ ์ ์ ๋ณด N๊ฐ E . . F . . C F . B D E A B C [์์ ์ถ๋ ฅ] A 2. ํธ๋ฆฌ ์ํ ์ด์ง ํธ๋ฆฌ์ ๋
ธ๋์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๊ณ , ๋
ธ๋์ key์ ์์๋ค์ด ์ฃผ์ด์ก์ ๋ ํด๋น ํธ๋ฆฌ์ Preorder/ Inorder / Postorder ์์ผ๋ก ์ํํ๊ณ ์ถ๋ ฅํ์์ค. [์
๋ ฅ ๊ฐ] 6 # N D . . # ๊ฐ์ ์ ์ ๋ณด N๊ฐ E ...
โน๏ธ ๋ผ์ดํ/2020 ๊ฒจ์ธ๋ฐฉํ ๋ชจ๊ฐ์ฝ(๊ฐ์ธ)
2020.12.30
prim์ kruskal๋ฅผ ๊ฐ๋
๊ณผ ์ค์ต ๋ฌธ์ ๋ฅผ ๋ณต์ตํ๊ณ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํตํด ์ค์ ๋ฌธ์ ์ ์ ์ฉํด๋ด์ผ๋ก์จ ๋์ ์ฐจ์ด์ ์๊ณ ๋ฆฌ์ฆ ๋์๋ฐฉ์์ ๋ํด ํ์คํ๊ฒ ์๋ ๊ณ๊ธฐ๊ฐ ๋์๋ค. - ๋ชฉํ - codekodo.tistory.com/8 [์ฝ๋
ํ๊ตฌ๋ง ํ] 2020.12.30(์) - 2์ฃผ์ฐจ ๊ฐ์ธ ๋ชฉํ ๋ชฉํ : prim ์๊ณ ๋ฆฌ์ฆ๊ณผ kruskal ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋
๋ฐ ์ค์ต ๋ฌธ์ ๋ฅผ ๋ณต์ตํ๊ณ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํตํด ์ค์ ๋ฌธ์ ์ ์ ์ฉํด๋ณธ๋ค. ์ค์ต์ ์ด 3๋ฌธ์ ๋ก ์๊ณ ๋ฆฌ์ฆ ์์
์๊ฐ์ด ์งํ๋์๋ ์ค์ต ๋ฌธ์ ์ด๋ค. 1. prim ์๊ณ codekodo.tistory.com 1. prim ์๊ณ ๋ฆฌ์ฆ import heapq def prim(edges, vertices, n): queue = [] heapq.heappush(queue, [0, verti..
โน๏ธ ๋ผ์ดํ/2020 ๊ฒจ์ธ๋ฐฉํ ๋ชจ๊ฐ์ฝ(๊ฐ์ธ)
2020.12.30
๋ชฉํ : prim ์๊ณ ๋ฆฌ์ฆ๊ณผ kruskal ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋
๋ฐ ์ค์ต ๋ฌธ์ ๋ฅผ ๋ณต์ตํ๊ณ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํตํด ์ค์ ๋ฌธ์ ์ ์ ์ฉํด๋ณธ๋ค. ์ค์ต์ ์ด 3๋ฌธ์ ๋ก ์๊ณ ๋ฆฌ์ฆ ์์
์๊ฐ์ด ์งํ๋์๋ ์ค์ต ๋ฌธ์ ์ด๋ค. 1. prim ์๊ณ ๋ฆฌ์ฆ ๋ฌด๋ฐฉํฅ ๊ฐ์ค์น ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋ prim ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ MST๋ฅผ ๊ตฌํ๊ณ ๊ทธ ์์ง์ ํฉ์ ์ถ๋ ฅ. (๋ชจ๋ ๋
ธ๋๊ฐ ์ฐ๊ฒฐ๋์ง ์์, MST๊ฐ ์์ ๊ฒฝ์ฐ 0์ ์ถ๋ ฅ) ์
๋ ฅ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์ด์ง๋ค. 7 12 # N, M A B C D E F G # ๋
ธ๋์ ๊ฐ์ N ๊ฐ A B 7 # ๊ฐ์ ์ ์ ๋ณด M ๊ฐ C B 8 A D 5 C E 5 D B 9 E B 7 D E 15 E G 9 F G 11 E F 8 F D 6 E D 15 2. kruskal ์๊ณ ๋ฆฌ์ฆ ๋ฌด๋ฐฉํฅ ๊ฐ์ค์น ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋ kr..
โน๏ธ ๋ผ์ดํ/2020 ๊ฒจ์ธ๋ฐฉํ ๋ชจ๊ฐ์ฝ(๊ฐ์ธ)
2020.12.23
BFS์ DFS๋ฅผ ๊ฐ๋
๊ณผ ์ค์ต ๋ฌธ์ ๋ฅผ ๋ณต์ตํ๊ณ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํตํด ์ค์ ๋ฌธ์ ์ ์ ์ฉํด๋ด์ผ๋ก์จ ๋์ ์ฐจ์ด์ ์๊ณ ๋ฆฌ์ฆ ๋์๋ฐฉ์์ ๋ํด ํ์คํ๊ฒ ์๋ ๊ณ๊ธฐ๊ฐ ๋์๋ค. 1. ์ด์ ๋
ธ๋ ์ฐพ๊ธฐ (๊ทธ๋ํ ๊ธฐ๋ณธ) def main(): n, m = map(int, input().split()) node = list(input().split()) node_dict = dict() for i in range(n): node_dict[node[i]] = [] for i in range(m): srt, dst = input().split() if dst not in node_dict[srt]: node_dict[srt].append(dst) find_node = input() print(len(node_dict[find_node..
โน๏ธ ๋ผ์ดํ/2020 ๊ฒจ์ธ๋ฐฉํ ๋ชจ๊ฐ์ฝ(๊ฐ์ธ)
2020.12.23
๋ชฉํ : BFS์ DFS๋ฅผ ๊ฐ๋
๊ณผ ์ค์ต ๋ฌธ์ ๋ฅผ ๋ณต์ตํ๊ณ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํตํด ์ค์ ๋ฌธ์ ์ ์ ์ฉํด๋ณธ๋ค. ์ค์ต์ ์ด 3๋ฌธ์ ๋ก ์๊ณ ๋ฆฌ์ฆ ์์
์๊ฐ์ด ์งํ๋์๋ ์ค์ต ๋ฌธ์ ์ด๋ค. 1. ์ด์ ๋
ธ๋ ์ฐพ๊ธฐ (๊ทธ๋ํ ๊ธฐ๋ณธ) ์
๋ ฅ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์ด์ง๋ค. 4 4 # N M AA BB CC DD # ๋
ธ๋์ ๊ฐ์ N ๊ฐ AA CC # ๊ฐ์ ์ ๋ณด M ๊ฐ BB DD AA BB BB AA AA # ์ง์ ๋
ธ๋ 2. BFS (๋๋น ์ฐ์ ํ์) ์
๋ ฅ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์ด์ง๋ค. 12 11 # N M A B C D E F G H I J K L # ๋
ธ๋์ ๊ฐ์ N ๊ฐ A B # ๊ฐ์ ์ ๋ณด M ๊ฐ A C A D B E B F D G D H E I E J G K G L A # ์ง์ ๋
ธ๋ 3. DFS (๊น์ด ์ฐ์ ํ์) - ์ ๊ทธ๋ํ์ ๋์ผ 4..
โ๏ธ ์ฝํ
์ค๋น/Brute Force
2020.12.21
www.acmicpc.net/problem/7568 7568๋ฒ: ๋ฉ์น ์ฐ๋ฆฌ๋ ์ฌ๋์ ๋ฉ์น๋ฅผ ํค์ ๋ชธ๋ฌด๊ฒ, ์ด ๋ ๊ฐ์ ๊ฐ์ผ๋ก ํํํ์ฌ ๊ทธ ๋ฑ์๋ฅผ ๋งค๊ฒจ๋ณด๋ ค๊ณ ํ๋ค. ์ด๋ค ์ฌ๋์ ๋ชธ๋ฌด๊ฒ๊ฐ x kg์ด๊ณ ํค๊ฐ y cm๋ผ๋ฉด ์ด ์ฌ๋์ ๋ฉ์น๋ (x,y)๋ก ํ์๋๋ค. ๋ ์ฌ๋ A ์ B์ ๋ฉ www.acmicpc.net ์
๋ ฅ ์ฒซ ์ค์๋ ์ ์ฒด ์ฌ๋์ ์ N์ด ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ด์ง๋ N๊ฐ์ ์ค์๋ ๊ฐ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ์ ํค๋ฅผ ๋ํ๋ด๋ ์์ ์ ์ x์ y๊ฐ ํ๋์ ๊ณต๋ฐฑ์ ๋๊ณ ๊ฐ๊ฐ ๋ํ๋๋ค. ์ถ๋ ฅ ์ฌ๋ฌ๋ถ์ ์
๋ ฅ์ ๋์ด๋ ์ฌ๋์ ๋ฉ์น ๋ฑ์๋ฅผ ๊ตฌํด์ ๊ทธ ์์๋๋ก ์ฒซ ์ค์ ์ถ๋ ฅํด์ผ ํ๋ค. ๋จ, ๊ฐ ๋ฉ์น ๋ฑ์๋ ๊ณต๋ฐฑ๋ฌธ์๋ก ๋ถ๋ฆฌ๋์ด์ผ ํ๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ ๋ฆฌ์คํธ์ x, y ๋ฅผ ์ ์ฅํ๊ณ ๋ฐ๋ณต๋ฌธ์ ํ์ํ๋ค. ํด๊ฒฐ ๊ณผ์ ์ด ๋ฌธ์ ๋ฅผ ๋ ๋ฒ์..