- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ์น๋ฆฐ์ด
- C++
- ์ด๋ถํ์
- ํธ๋ฆฌ
- go
- ์์ฝ๋
- ์ํฐ๋
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- ์นด์นด์ค2021
- golang
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- DP
- LCs
- ๋ฐฑ์ค
- ๋นํธ๋งต
- ๋นํธ๋ง์คํน
- nestjs
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ์ฌ๊ท
- DFS
- ํ๋ฆฌ์จ๋ณด๋ฉ
- Union-Find
- Python
- js
- ๋ค์ต์คํธ๋ผ
- BFS
- ์๊ณ ๋ฆฌ์ฆ
- ์นด์นด์ค ์ฝํ
- Today
- Total
๋ชฉ๋กAlgorithm (101)
Hello Ocean! ๐ผ

๋ฌธ์ https://www.acmicpc.net/problem/14906 14906๋ฒ: ์ค๋ฌํผ ์ฒซ ๋ฒ์งธ ์ค์๋ ์ ๋ ฅ๋ ๋ฌธ์์ด์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์ N์ด 1~10์ ๋ฒ์๋ก ์ฐ์ ์ ๋ ฅ๋๋ค. ๋ค์ ์ค๋ถํฐ N๊ฐ์ ๋ฌธ์์ด์ด ์ ๋ ฅ๋๋ค. ๋ฌธ์์ด์ 1~60๊ฐ์ ์ํ๋ฒณ ๋ฌธ์๋ก ๊ตฌ์ฑ๋๋ค. www.acmicpc.net ํ์ด ์ค๋ฌํผ = ์ค๋ฆผํ + ์ค๋ผํ [์ค๋ฆผํ] AH AB(์ค๋ฆผํ)C A(์ค๋ผํ)C [์ค๋ผํ] DFG or EFG DF(์ค๋ผํ) or EF(์ค๋ผํ) ์ฌ๊ท๋ฅผ ์ด์ฉํ๋ค. isSlimpํจ์๋ input์์ ์ค๋ฆผํ์ ์์idx๋ฅผ returnํ๋ค. ์ฌ๋ฐ๋ฅธ ์ค๋ฆผํ๋ฅผ ์ฐพ์ ์ ์์ ๋์๋ -1์ returnํ๋ค. ex) isSlimp(AH~~~) : 2 isSlimp(ABAHC~~~) : 5 isSlumpํจ์๋ input์ด..

๋ฌธ์ https://www.acmicpc.net/problem/1013 1013๋ฒ: Contact ์ ๋ ฅ์ ์ฒซ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ ๋ค์ ์ค๋ถํฐ ๊ฐ๊ฐ์ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ์ ํ๋ฅผ ํํํ๋, { 0, 1 }๋ง์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ด ๊ณต๋ฐฑ ์์ด ์ฃผ์ด์ง๋ค. ๋ฌธ์์ด ๊ธธ์ด๋ (1 ≤ www.acmicpc.net ๋ฌธ์ ๊ฐ ๊ต์ฅํ ๊ธธ๊ณ ๋ณต์กํ๋ค.. ๊ผผ๊ผผํ ์ฝ์ด๋ณด๋ฉด์ ์ดํดํ๋ ์๊ฐ์ด ํ์ํ๋ค. ์์ฝํ์๋ฉด, ๊ฒฐ๊ณผ์ ์ผ๋ก ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ด (100+1+|01)+ ํจํด์ ํด๋นํ๋์ง ์๋์ง๋ฅผ ํ๋จํ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค. ํ์ด (100+1+|01)+๋ฅผ ์ชผ๊ฐ์ ๋ณด์. 100+1+ = A, 01 = B๋ผ๊ณ ํ๋ฉด, (A|B)+ ์ด๋ฏ๋ก, A๋ B๊ฐ ๊ณ์ ๋ฐ๋ณต์ ์ผ๋ก ๋ํ๋๋ฉด ๋๋ค. B๋ 01 ์์ฒด์ด๊ณ , A ๋ 100+..

๋ฌธ์ https://www.acmicpc.net/problem/7579 ์ฐ๋ฆฌ๋ ์ค๋งํธํฐ์ ์ฌ์ฉํ๋ฉด์ ์ฌ๋ฌ ๊ฐ์ง ์ฑ(App)์ ์คํํ๊ฒ ๋๋ค. ๋๊ฐ์ ๊ฒฝ์ฐ ํ๋ฉด์ ๋ณด์ด๋ ‘์คํ ์ค’์ธ ์ฑ์ ํ๋๋ฟ์ด์ง๋ง ๋ณด์ด์ง ์๋ ์ํ๋ก ๋ง์ ์ฑ์ด 'ํ์ฑํ'๋์ด ์๋ค. ์ฑ๋ค์ด ํ์ฑํ ๋์ด ์๋ค๋ ๊ฒ์ ํ๋ฉด์ ๋ณด์ด์ง ์๋๋ผ๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ์ํ๊ฐ ๊ธฐ๋ก๋์ด ์๋ ๊ฒ์ ๋งํ๋ค. ํ์ฌ ์คํ ์ค์ด ์๋๋๋ผ๋ ์ด๋ ๊ฒ ๋ฉ๋ชจ๋ฆฌ์ ๋จ๊ฒจ๋๋ ์ด์ ๋ ์ฌ์ฉ์๊ฐ ์ด์ ์ ์คํํ๋ ์ฑ์ ๋ค์ ๋ถ๋ฌ์ฌ ๋์ ์ง์ ์ ์ํ๋ฅผ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ก๋ถํฐ ์ฝ์ด ๋ค์ฌ ์คํ ์ค๋น๋ฅผ ๋น ๋ฅด๊ฒ ๋ง์น๊ธฐ ์ํด์์ด๋ค. ํ์ง๋ง ์ค๋งํธํฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ ํ์ ์ด๊ธฐ ๋๋ฌธ์ ํ๋ฒ์ด๋ผ๋ ์คํํ๋ ๋ชจ๋ ์ฑ์ ํ์ฑํ๋ ์ฑ๋ก ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋จ๊ฒจ๋๋ค ๋ณด๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ํ๊ฐ ์ค๊ธฐ ์ฝ๋ค. ์๋ก์ด ..

๋ฌธ์ https://www.acmicpc.net/problem/20040 ์ฌ์ดํด ๊ฒ์์ ๋ ๋ช ์ ํ๋ ์ด์ด๊ฐ ์ฐจ๋ก๋๋ก ๋์๊ฐ๋ฉฐ ์งํํ๋ ๊ฒ์์ผ๋ก, ์ ํ๋ ์ด์ด๊ฐ ํ์ ๋ฒ์งธ ์ฐจ๋ก๋ฅผ, ํ ํ๋ ์ด์ด๊ฐ ์ง์ ๋ฒ์งธ ์ฐจ๋ก๋ฅผ ์งํํ๋ค. ๊ฒ์ ์์ ์ 0 ๋ถํฐ n − 1 ๊น์ง ๊ณ ์ ํ ๋ฒํธ๊ฐ ๋ถ์ฌ๋ ํ๋ฉด ์์ ์ n ๊ฐ๊ฐ ์ฃผ์ด์ง๋ฉฐ, ์ด ์ค ์ด๋ ์ธ ์ ๋ ์ผ์ง์ ์์ ๋์ด์ง ์๋๋ค. ๋งค ์ฐจ๋ก ๋ง๋ค ํ๋ ์ด์ด๋ ๋ ์ ์ ์ ํํด์ ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ ๋ถ์ ๊ธ๋๋ฐ, ์ด์ ์ ๊ทธ๋ฆฐ ์ ๋ถ์ ๋ค์ ๊ทธ์ ์๋ ์์ง๋ง ์ด๋ฏธ ๊ทธ๋ฆฐ ๋ค๋ฅธ ์ ๋ถ๊ณผ ๊ต์ฐจํ๋ ๊ฒ์ ๊ฐ๋ฅํ๋ค. ๊ฒ์์ ์งํํ๋ค๊ฐ ์ฒ์์ผ๋ก ์ฌ์ดํด์ ์์ฑํ๋ ์๊ฐ ๊ฒ์์ด ์ข ๋ฃ๋๋ค. ์ฌ์ดํด C๋ ํ๋ ์ด์ด๊ฐ ๊ทธ๋ฆฐ ์ ๋ถ๋ค์ ๋ถ๋ถ์งํฉ์ผ๋ก, ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ค. C์ ์ํ ์์์ ์ ๋ถ์ ํ ๋์ ์์ ..
์์ฝ์ฝ์ ์ ๋ ฌ์ด ๋ฏธ๋ฆฌ ์ ๋ ฌ๋์ด์๋ ์๋ฃ๊ตฌ์กฐ์์ ๊ฐ์ฅ ๋น ๋ฅธ ์ฑ๋ฅ์ ๊ฐ์ง๋ค. ์?๋ฒ๋ธ์ ๋ ฌ์ ์๊ฐ๋ณต์ก๋๊ฐ O(N^2)์ด๊ณ ,ํต, ๋จธ์ง์ํธ๋ ๋ถํ -์ ๋ณต ๊ณผ์ ์ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์ ๋๋ฆฌ๋ค.์ ์ ๋ ฌ์ ๊ฐ๊ฒฉ์ด k๋ผ๊ณ ํ์ ๋, k๊ฐ 1์ด๋ ๋ ๊น์ง ์ค์ด๋ฉด์ ๋ฐ๋ณตํด์ผ ํ๋ฏ๋ก ์ด๋ฏธ ์ ๋ ฌ๋ ์๋ฃ๊ตฌ์กฐ์์๋ ์ฝ์ ์ ๋ ฌ๋ณด๋ค ๋น ๋ฅด์ง ์๋ค. ** ์ด์ง ์ฝ์ ์ ๋ ฌ์ด ์ผ๋ฐ์ ์ธ ์ฝ์ ์ ๋ ฌ๋ณด๋ค ๋ ๋น ๋ฅด๋ค๊ณ ๋งํ ์ ์๋ค.list๋ด์์ ์ด๋ค ์์์ ์์น๋ฅผ ์ฐพ์ ๋, ์ฝ์ ์ ๋ ฌ์ 1~n๋ฒ์งธ ์์๋ฅผ ๋ชจ๋ ๋์๊ฐ๋ฉด์ ๋ณด์ง๋ง,์ด์ง ์ฝ์ ์ ๋ ฌ์ ์ด ๊ณผ์ ์ ์ด์งํ์์ผ๋ก ์งํํด์ O(logN)์ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ด๋ค. ** ์ธ์ด๋ณ ๊ธฐ๋ณธ ์ ๊ณต sorting ์๊ณ ๋ฆฌ์ฆJava : Tim Sort, dual pivot quicksortPython : Tim SortC++..
Binary Search Tree(์ด์ง ํ์ ํธ๋ฆฌ)๋? ์ด์ง ํ์ + ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ๊ฒฐํฉํ ์๋ฃ๊ตฌ์กฐ์ ์ผ์ข ์ด์ง ํ์์ ํจ์จ์ ์ธ ํ์ ๋ฅ๋ ฅ + ๋น๋ฒํ ์ฝ์ /์ญ์ ๊ฐ๋ฅํ๋๋ก ๊ณ ์ ์ด์ง ํ์ ๋ณต์ก๋ : O(logN) ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ฝ์ /์ญ์ ๋ณต์ก๋ : O(1) ์์ฑ ๊ฐ ๋ ธ๋์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์๋ ํด๋น ๋ ธ๋์ ๊ฐ๋ณด๋ค ์์ ๊ฐ์ ๊ฐ์ง ๋ ธ๋๋ค๋ก, ๊ฐ ๋ ธ๋์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์๋ ํด๋น ๋ ธ๋์ ๊ฐ๋ณด๋ค ํฐ ๊ฐ์ ๋ ธ๋๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ์ค๋ณต๋๋ ๋ ธ๋๋ ์์ด์ผ ํ๋ฉฐ, ์ผ์ชฝ ์๋ธํธ๋ฆฌ, ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ๋ํ ์ด์งํ์ํธ๋ฆฌ์ ๋๋ค. ์ํ์์๋ ์ค์์ํ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด, ์ด์งํ์ํธ๋ฆฌ ๋ด์ ๋ชจ๋ ๊ฐ๋ค์ ์ ๋ ฌ๋ ์์ผ๋ก ์ฝ์ ์ ์์ต๋๋ค. ์ค์ ์ํ : ์ผ์ชฝ ํ์ ํธ๋ฆฌ -> root -> ์ค๋ฅธ์ชฝ ํ์ํธ๋ฆฌ ์ฐ์ฐ ๊ฒ์ / ์ฝ์ / ์ญ์ ์์ฑ..