๐ป DEV/Algorithms & Data Structure7 [์๊ณ ๋ฆฌ์ฆ][C++] ํธ๋ผ์ด (Trie) ๋ฐฑ์ค 14425: ๋ฌธ์์ด ์งํฉ https://www.acmicpc.net/problem/14425 14425๋ฒ: ๋ฌธ์์ด ์งํฉ ์ฒซ์งธ ์ค์ ๋ฌธ์์ด์ ๊ฐ์ N๊ณผ M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ ์งํฉ S์ ํฌํจ๋์ด ์๋ ๋ฌธ์์ด๋ค์ด ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ์ ์ค์๋ ๊ฒ์ฌํด์ผ ํ๋ ๋ฌธ์์ด๋ค์ด ์ฃผ์ด www.acmicpc.net ์ ๊ทผ ๋ฐฉํฅ ๋ฐ ๋๋ฒ๊น ํธ๋ผ์ด ๊ตฌํ - find ๋ฅผ ํ์ฉํ๋ฉด ํจ์ฌ ์๊ฐ๋ ๋น ๋ฅด๊ณ ๊ตฌํ๋ ๊ฐ๋จํ ๋ฌธ์ ์ด๋, ํธ๋ผ์ด ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ตํ๋ ์ฐจ์์์ ํธ๋ผ์ด๋ก ๊ตฌํ - ๊ฐ๋ณ ๋ ธ๋๋ฅผ ๋ด๋นํ struct ๋ฅผ ๊ตฌ์ฑํ๊ณ , ๋จ์ด๊ฐ ์ ๋ ฅ๋ ๋๋ง๋ค ๊ฐ ๊ธ์๋ฅผ ํธ๋ฆฌ ํํ๋ก ํ์ฑ - ๋จ์ด๊ฐ ์งํฉ์ ์กด์ฌํ๋์ง ์ฐพ์ ๋๋ ๊ตฌ์ฑ๋ ํธ๋ฆฌ๋ฅผ ํ์ - ์ค์ํ ์ ์, ํธ๋ฆฌ๋ฅผ.. 2024. 3. 13. [์๊ณ ๋ฆฌ์ฆ][C++] ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ ๋ฐฑ์ค 2042: ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ https://www.acmicpc.net/problem/2042 2042๋ฒ: ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ ์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 1,000,000)๊ณผ M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) ๊ฐ ์ฃผ์ด์ง๋ค. M์ ์์ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ํ์์ด๊ณ , K๋ ๊ตฌ๊ฐ์ ํฉ์ ๊ตฌํ๋ ํ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋์งธ ์ค๋ถํฐ N+1๋ฒ์งธ ์ค www.acmicpc.net ์ ๊ทผ ๋ฐฉํฅ ๋ฐ ๋๋ฒ๊น "๋ฒ์" ๋ณ ์ฌ๊ท ํธ๋ค๋ง์ ์ง์ค [1] ์ฐพ๋ ๋ฒ์๋ฅผ ๋ฏธํฌํจํ๋ ํธ์ถ์ผ ๋ [2] ์ฐพ๋ ๋ฒ์๋ฅผ ์ ๋ถ ํฌํจํ๋ ํธ์ถ์ผ ๋ [3] ์ฐพ๋ ๋ฒ์๋ฅผ ์ผ๋ถ ํฌํจํ๋ ํธ์ถ์ผ ๋ ์ ์ํ ๋ฐ์ดํฐ ํ์ ๊ณ ๋ฏผ - ๋ฌธ์ ์กฐ๊ฑด ์ค "์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ชจ๋ ์๋ -263๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 263-1๋ณด๋ค ์๊ฑฐ๋ ๊ฐ.. 2024. 3. 13. [์๊ณ ๋ฆฌ์ฆ][C++] ์ฐ์ ์์ํ, ํํ ๋ฐฑ์ค 11279: ์ต๋ ํ https://www.acmicpc.net/problem/11279 11279๋ฒ: ์ต๋ ํ ์ฒซ์งธ ์ค์ ์ฐ์ฐ์ ๊ฐ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ ์ฐ์ฐ์ ๋ํ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ์ ์ x๊ฐ ์ฃผ์ด์ง๋ค. ๋ง์ฝ x๊ฐ ์์ฐ์๋ผ๋ฉด ๋ฐฐ์ด์ x๋ผ๋ ๊ฐ์ ๋ฃ๋(์ถ๊ฐํ๋) ์ฐ์ฐ์ด๊ณ , x๊ฐ 0 www.acmicpc.net ์ ๊ทผ ๋ฐฉํฅ ๋ฐ ๋๋ฒ๊น [1] ์ต๋ํ ๊นก๊ตฌํ - insert(), pop() ์ ํธ๋ฆฌ๋ฅผ ์/ํ๋จ์ผ๋ก ํ์ํ์ฌ ์์ดํ ๊ฐ ๋์๋น๊ต๋ฅผ ํตํด ๊ฐ swap ํ๋ ์ ์ญ ํจ์ ์์ฑ - insert() ์์๋ ๊ฐ์ ์ตํ๋จ ๋ ธ๋์ ์ถ๊ฐํ์ฌ, ๋ถ๋ชจ ๋ ธ๋๊ฐ ๋๋ณด๋ค ๊ฐ์ด ๋๋ณด๋ค ํด ๋๊น์ง swap - pop() ์์๋ ์ต์๋จ ๊ฐ์ ์ ๊ฑฐํ๊ณ , ์์ ๋ ธ๋๊ฐ ๋๋ณด๋ค ๊ฐ์ด ์.. 2024. 3. 11. [์๊ณ ๋ฆฌ์ฆ][C++] Dijkstra (๋ค์ต์คํธ๋ผ) / ์ต๋จ ๊ฒฝ๋ก ํ์ ๋ฐฑ์ค 5972 : ํ๋ฐฐ ๋ฐฐ์ก https://www.acmicpc.net/problem/5972 5972๋ฒ: ํ๋ฐฐ ๋ฐฐ์ก ๋๋ถ ํ์๋ ๋๋ถ ์ฐฌํ์ด์๊ฒ ํ๋ฐฐ๋ฅผ ๋ฐฐ๋ฌํด์ค์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๊ธ, ๊ฐ ์ค๋น๋ฅผ ํ๊ณ ์์ต๋๋ค. ํํ๋กญ๊ฒ ๊ฐ๋ ค๋ฉด ๊ฐ๋ ๊ธธ์ ๋ง๋๋ ๋ชจ๋ ์๋ค์๊ฒ ๋ง์๋ ์ฌ๋ฌผ์ ์ค์ผ ํฉ๋๋ค. ๋ฌผ๋ก ํ์๋ www.acmicpc.net ์ ๊ทผ ๋ฐฉํฅ ๋ฐ ๋๋ฒ๊น [1] ์ต์ด ์ ๊ทผ - N * N ๋ฐฐ์ด์ ๋ง๋ค์ด ์ ์ ๋ณ๋ก ์ฐ๊ฒฐ๋ ์ ์ ๊ณผ์ ๊ฑฐ๋ฆฌ๋ฅผ ํ์ํ๊ณ , ์ดํ ์ฐ์ ์์ํ์ Visited ๋ฐฐ์ด์ ์ฌ์ฉํด ํ์์ ์งํํ๊ณ ์ ํจ - ํด๋น ์ ๊ทผ์ผ๋ก TC ๋ต์ ๋์์ผ๋, ๋ฉ๋ชจ๋ฆฌ๊ฐ 128 MB ๋ก ์ ํ๋์ด ์์ด์ ์ฝ 3% ๋๋ถํฐ ๋ฉ๋ชจ๋ฆฌ ํฐ์ง - ๋น์ฐํจ.. N ์ ์ต๋๊ฐ์ด 50000 ์ด๋ผ๋ ์ ์ ์ ๋๋ก ํ์ธํ์ง ์์ [2] ์์ ๋ ์ .. 2024. 3. 11. [Algorithms] ์๊ฐ๋ณต์ก๋ (Big-O Notation) ๋? โจ ์๊ฐ๋ณต์ก๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ก์ง์ ์ฝ๋๋ก ๊ตฌํํ ๋, ์ ๋ ฅ๊ฐ์ ๋ฐ๋ผ ์ถ๋ ฅ๊ฐ์ ๋ด๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋น์จ์ ์๋ฏธํ๋ค. ์๊ฐ ๋ณต์ก๋๋ ๋ณดํต Big-O Notation (Big-O ํ๊ธฐ๋ฒ) ์ ํ์ฉํ์ฌ ๋ํ๋ธ๋ค. Big-O Notation ์ด์ธ์๋ Big-Omega(big-Ω),Big-Theta(big-Θ) Notation ๋ฑ์ด ์กด์ฌํ๋ค. Big-Omega๋ ์๊ณ ๋ฆฌ์ฆ ํจ์จ์ ํํ์ ์ ๊ธฐ์ค์ผ๋ก ํ๊ณ , Big-Theta๋ ์ํ์ ๊ณผ ํํ์ ์ ์ฌ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋จํ๋ค. ์ด์ ๋นํด Big-O ๋ ์๊ณ ๋ฆฌ์ฆ ํจ์จ์ ์ํ์ ๊ธฐ์ค์ผ๋ก ํ๊ธฐํ๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ฌ์ฉ๋๋ค. ์ฆ, ์๊ณ ๋ฆฌ์ฆ์ ์คํํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต๋๊ฐ์ ํ๊ธฐํ๊ธฐ ๋๋ฌธ์ ํจ์จ์ฑ ์ ๊ฒ์ ์์ฃผ ์ฌ์ฉ๋๋ค. ์๊ฐ ๋ณต์ก๋์ ์์ธ๋ฌ ๊ณต๊ฐ ๋ณต์ก๋ (Space Complexity).. 2021. 7. 8. [Data Structure] ์คํ(Stack) ๊ณผ ํ(Queue) ์คํ๊ณผ ํ๋ ๊ฐ์ฅ ์์ฃผ ํ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ ์ค ํ๋์ด๋ค. โจ ์คํ(Stack) ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ๋์ค์ ๋๊ฐ๋ ํ์์ ์๋ฃ๊ตฌ์กฐ์ด๋ฉฐ, ์ ์ถ๊ตฌ๊ฐ ํ๋์ด๋ค. ํ์ ์ ์ถ (LIFO; Last in First Out) ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ์ผ์ด๋๋ ์์น๋ฅผ Top ์ด๋ผ๊ณ ํ๋ค. ๋น์ด์๋ ์คํ์์ ์์๋ฅผ ์ถ์ถํ๋ ค๊ณ ํ ๋๋ stack underflow, ์คํ์ด ๋์น๋ ๊ฒฝ์ฐ๋ stack overflow ์ด๋ค. โจ์คํ ์์ ๋ชจ๋ฐ์ผ ํ๋ฉด์ ๊ฒฝ์ฐ, ์ฌ์ฉ์๊ฐ ํ์ฌ ๋ณด๊ณ ์๋ ํ๋ฉด์ด Top ์ด๋ค. ๋ค์ ํ๋ฉด ํด๋ฆญ ์, ์ ํ๋ฉด์ Stack ์ ์ถ๊ฐํ๊ณ ์ด๋ํ๋ค. ์ด์ ํ๋ฉด์ผ๋ก ๋์๊ฐ ์, ํ์ฌ ํ๋ฉด์ Stack ์์ ์ง์ฐ๊ณ ์ด๋ํ๋ค. โจ ํ(Queue) ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋๊ฐ๋ ํ์์ ์๋ฃ๊ตฌ์กฐ์ด๋ฉฐ, .. 2021. 7. 7. [Algorithm] ๊น์ด์ฐ์ ํ์(DFS) ๊ณผ ๋๋น์ฐ์ ํ์(BFS) DFS ์ BFS ๋ ๊ฐ๊ฐ Depth-First Search ์ Breadth-First Search ๋ก, ๊น์ด์ฐ์ ํ์๊ณผ ๋๋น์ฐ์ ํ์์ ๋ปํ๋ค. ๋์ ์ฐจ์ด์ ๊ณผ ์ฝ๋ ๊ตฌํ ๋ฐฉ๋ฒ์ ๊ตฌ์ฒด์ ์ผ๋ก ์์๋ณด๊ณ ์ ํ๋ค. BFS ๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐํ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ธ๋๋ถํฐ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ํ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ ์ ์๋ค. ๊ตฌํ ๋จ๊ณ ํ์ ํ์ ์์ ๋ ธ๋๋ฅผ ์ฝ์ ํ๋ค. ํ์ front ๋ฅผ ๋ฐฉ๋ฌธํ ๋๋ง๋ค ๋ฐฉ๋ฌธ ํ์๋ฅผ ํ๊ณ , popleft() ๋ฅผ ํ๋ค. ํ์ฌ ๋ฐฉ๋ฌธํ๊ณ ์๋ ๋ ธ๋์ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋๊ฐ ์๋ค๋ฉด ๊ทธ ๋ ธ๋๋ฅผ ํ์ ๋ฃ๋๋ค ํ์ฌ ๋ฐฉ๋ฌธํ๊ณ ์๋ ๋ ธ๋์ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋๊ฐ ์๋ค๋ฉด ํ์ front ์ ๊บผ๋ธ๋ค ๋ฐ๋ณต ์คํํ์ฌ ํ๊ฐ ์์ ํ ๋น ๋ ์ข ๋ฃํ๋ค from collections import deq.. 2021. 6. 30. ์ด์ 1 ๋ค์