๐ Computer Science
![[C++] ๋ฌธ์์ด](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkO6sS%2FbtrmJEIeazF%2FmUh0ILNXVqvjeUHeK2whPk%2Fimg.png)
[C++] ๋ฌธ์์ด
๋ฌธ์์ด 1. KMP ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์์ด ๊ฒ์์ ๋น ๋ฅด๊ฒ ๊ตฌํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. 1) ๊ธฐ๋ณธ ์๋ฆฌ ์ ๋์ฌ(prefix)์ ์ ๋ฏธ์ฌ(suffix)๋ฅผ ์ด์ฉํด pi[i] ๋ฐฐ์ด์ ๊ตฌํ ๋ค ํ์ฉํ๋ค. pi[i] ๋ฐฐ์ด์ 0~i๊น์ง์ ๋ถ๋ถ ๋ฌธ์์ด์์ prefix=suffix๊ฐ ๋ ์ ์๋ ๋ถ๋ถ ๋ฌธ์์ด ์ค ๊ฐ์ฅ ๊ธด ๊ฒ์ ๊ธธ์ด์ด๋ค. ์ด๋, prefix๊ฐ 0~i๊น์ง์ ๋ถ๋ถ ๋ฌธ์์ด๊ณผ ๊ฐ์ผ๋ฉด ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฌธ์์ด ABAABAB๋ก pi[i] ๋ฐฐ์ด์ ๊ตฌํด๋ณด์. i ๋ถ๋ถ ๋ฌธ์์ด (0~i) pi[i] 0 A 0 1 AB 0 2 ABA 1 3 ABAA 1 4 ABAAB 2 5 ABAABA 3 6 ABAABAB 2 ๊ทธ๋ ๋ค๋ฉด ์ด pi[i] ๋ฐฐ์ด์ ์ด๋ป๊ฒ ํ์ฉํ์ฌ ๋ฌธ์์ด ๊ฒ์์ ํจ์จ์ ์ผ๋ก ํ ๊ฒ์ธ๊ฐ? ๋ฌธ์์ด ABCDABCDABEE์์ ๋ฌธ์..
![ํด๋ผ์ฐ๋ ์ปดํจํ
(Cloud Computing)๊ณผ AWS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FronNL%2Fbtrmrt7kDij%2FlVqAvHpGDxC76NRv0sWhO1%2Fimg.png)
ํด๋ผ์ฐ๋ ์ปดํจํ (Cloud Computing)๊ณผ AWS
1. ํด๋ผ์ฐ๋ ์ปดํจํ (Cloud Computing) ์ธํฐ๋ท์ ํตํด ์ ์ฐ ์์(์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋คํธ์ํน ๋ฑ)์ ๊ณต์ ํ๋ ๊ธฐ์ ๊ณผ ๋๊ตฌ์ ์งํฉ์ด๋ค. ์ด๋์๋ ํ๋์ ๋ดค์ ๋ ๊ตฌ๋ฆ(Cloud)์ ๋ณผ ์ ์๋ ๊ฒ์ฒ๋ผ, ์ด๋์๋ ์์์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค. 1) ์ ํด๋ผ์ฐ๋ ์ปดํจํ ์ ์ฌ์ฉํ ๊น? 1. ๋น์ฉ ์ฌ์ฉํ ๋งํผ๋ง ์ง๋ถํ๋ค. ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ ํ๊ฑฐ๋ ์จ์ฌ์ดํธ ๋ฐ์ดํฐ ์ผํฐ๋ฅผ ์ค์น ๋ฐ ์ด์ํ๋ ๋น์ฉ์ ์ค์ผ ์ ์๋ค. ์ฆ, ์ด๊ธฐ ํฌ์ ๋น์ฉ ๋ฐ ์ด์ ๋น์ฉ์ ์ ๊ฐํ ์ ์๋ค. 2. ์๋ ๋๋ถ๋ถ ํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์ค๋ ์ฃผ๋ฌธํ ์ ํ์๋น์ค๋ก ์ ๊ณต๋๋ค. ๋ฐ๋ผ์ ๊ธฐ์ ์ ๋ง์ ์ ์ฐ์ฑ์ด ์ ๊ณต๋๋ฉฐ ๊ธฐ์ ์ ์ฉ๋ ๊ณํ ๋ถ๋ด์ ๋ ์ ์๋ค. 3. ๋ฐ์ด๋ ํ์ฅ์ฑ ํ์ํ ๋์ ์ ์ ํ ์ง๋ฆฌ์ ์์น์์ ๋๋ต์ ์ธ ์ปดํจํฐ ์ฑ๋ฅ, ์คํ ๋ฆฌ์ง..
![[C++] ๋คํธ์ํฌ ์ ๋(Network Flow)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbCyjN%2FbtrlshOEtI0%2FXqpkjzIqCRtPaAFRbYnxI1%2Fimg.png)
[C++] ๋คํธ์ํฌ ์ ๋(Network Flow)
๋คํธ์ํฌ ์ ๋(Network Flow) ๊ทธ๋ํ ๊ฐ๋ ์ค ํ๋๋ก ๋คํธ์ํฌ ์ ๋์ ์ดํดํ๊ธฐ ์ํด์ ๋จผ์ ์๋ก์ด ์ฉ์ด์ ์ ๋ ๊ทธ๋ํ์ ํน์ง๋ถํฐ ์์์ผ ํ๋ค. ์ ๋ ๊ทธ๋ํ๋ ๋ณดํต ๋ฐฉํฅ ๊ทธ๋ํ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๊ทธ๋ํ์ ๊ฐ์ ๊ฑฐ๋ฆฌ, ์๊ฐ์ด๋ ๊ฐ์ค์น ๋์ ์ฉ๋(Capacity)์ด๋ผ ํ๋ค. ๋ ์ ์ u, v๋ฅผ ์๋ ๊ฐ์ (u, v)๊ฐ ์์ ๋, u์์ v๋ก ๊ฐ์ ์ ์ฉ๋ ์ดํ๋งํผ์ ์ ๋(flow)์ ํ๋ ค๋ณด๋ผ ์ ์๋ค. ๊ทธ๋ํ ๋ด ์๋ก ๋ค๋ฅธ ์์ค(S, Source) ์ ์ ๊ณผ ์ฑํฌ(T, Sink) ์ ์ ์ด ์๋๋ฐ, ์์ค ์ ์ ์ ์ ๋์ ๋ฐ์์ํจ๋ค. ์์ค ์ ์ ์ธ ์ ์ ๋ค์ ์์ ์ด ๋ฐ์ ์ ๋๋งํผ๋ง ๋ค์ ํ๋ ค๋ณด๋ธ๋ค. ๊ฐ ๊ฐ์ ์ ํ๋ฅด๋ ์ ๋์ ๊ทธ ๊ฐ์ ์ ์ฉ๋์ ๋์ ์ ์๋ค. ๊ฐ์ (u, v)๋ก ์ ๋์ด ํ๋ฅด๊ณ ์๋ค๋ฉด ์ญ๋ฐฉํฅ์ธ ๊ฐ์ (v,..
[C++] ํฌ์ ํ ์ด๋ธ(Sparse Table)
ํฌ์ ํ ์ด๋ธ(Sparse Table) ๋ฐฐ์ด์ด ์ ์ ์ด์ด์ผ ํ๋ค. ์ฆ, ๋ฐฐ์ด ๋ด์ฉ์ด ์์ ๋๋ฉด ์ ๋๋ค. ๋ฐฐ์ด์ ์์ด๋์ด๋ ๋ถํ ์ ๋ณต๊ณผ ๋น์ทํ์ง๋ง ๋ ๋น ๋ฅด๋ค. ๊ธฐ๋ณธ ์๋ฆฌ ๋ชจ๋ ์ ์ ์ ๊ฐ์ ์ด 1๊ฐ์ธ ์ ํฅ ๊ทธ๋ํ๊ฐ ์กด์ฌํ ๋ ์ด๋ค ์ ์ ์์ ์์ํด k๋ฒ ์ด๋์ ํ๋ฉด ๋์ฐฉํ๋ ์ ์ ์ ์ผํ๋ค. ์ด๋ k๋ฒ์ ์ผ์ผ์ด ๋งค๋ฒ ๋ฐ๋ผ๊ฐ๋ฉฐ ๋์ฐฉ์ ์ ๊ณ์ฐํ ์๋ ์๊ฒ ์ง๋ง k๊ฐ์ด ์ปค์ง์๋ก ์๊ฐ๋ ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ด๋ค. ๋ง์ฝ ์ด๋ค ์ ์ ์ n๋ฒ ์ด๋ํ์ ๋ ๋์ฐฉ์ , ๋ ๊ทธ ๋์ฐฉ์ ์ ์ ์ ๋ง๋ค ๋ค ๊ธฐ์ตํ๋ ๋ฐฐ์ด์ด ์๋ค๋ฉด ๋์ฐฉ์ ์ ๋งค์ฐ ํจ์จ์ ์ผ๋ก ๊ตฌํ ์ ์์ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด ๋ฐฐ์ด์ ์ด๋ป๊ฒ ๊ฐ์ ธ์ผ ํ ๊น? 1์นธ, 2์นธ, 4์นธ, 8์นธ, 16์นธ,... ๋ฑ 2์ง์๋ฅผ ์ด์ฉํด 2์ง์์ ํด๋นํ๋ ์ด๋ ๊ฐ์ ๋ชจ๋ ๋ฐฐ์ด๋ก ๋ง๋ ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ํ์ k๋ฅผ 2..
![[C++] ์์ ์ ๋ ฌ(Topological Sort)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsrRVD%2FbtrlmoAF3cH%2FfCOP2svPKy379twq2d05g1%2Fimg.png)
[C++] ์์ ์ ๋ ฌ(Topological Sort)
์์ ์ ๋ ฌ(Topological Sort) ์์ ์ ๋ ฌ์ ์์๊ฐ ์ ํด์ ธ ์๋ ์์ ์ ์ฐจ๋ก๋ก ์ํํด์ผ ํ ๋ ๊ทธ ์์๋ฅผ ๊ฒฐ์ ํด์ฃผ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ต์ด ์กด์ฌํ ์ ์๋ค. DAG(Directed Acyclic Graph)์๋ง ์ ์ฉ์ด ๊ฐ๋ฅํ๋ค. ์คํ๊ณผ ํ๋ก ๊ตฌํ๋๋ค. ๊ธฐ๋ณธ ์๋ฆฌ ์ง์ ์ฐจ์๊ฐ 0์ธ ์ ์ ์ ํ์ ์ฝ์ ํ๋ค. ํ์์ ์์๋ฅผ ๊บผ๋ด ์ฐ๊ฒฐ๋ ๋ชจ๋ ๊ฐ์ ์ ์ ๊ฑฐ ํ ์ง์ ์ฐจ์๊ฐ 0์ด ๋ ์ ์ ์ ํ์ ์ฝ์ ํ๋ค. ํ๊ฐ ๋น ๋๊น์ง 2๋ฒ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค. ๋ชจ๋ ์์๋ฅผ ๋ฐฉ๋ฌธํ๊ธฐ ์ ์ ํ๊ฐ ๋น๋ค๋ฉด ์ฌ์ดํด์ด ์กด์ฌํ๋ ๊ฒ์ด๊ณ , ๋ชจ๋ ์์๋ฅผ ๋ฐฉ๋ฌธํ๋ค๋ฉด ํ์์ ๊บผ๋ธ ์์๊ฐ ์์ ์ ๋ ฌ์ ๊ฒฐ๊ณผ์ด๋ค. ๋ฌธ์ https://www.acmicpc.net/problem/1766 1766๋ฒ: ๋ฌธ์ ์ง ์ฒซ์งธ ์ค์ ๋ฌธ์ ์ ์ N(1 ..
![[C++] ํ์
ํธ๋ฆฌ(Fenwick Tree)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLcc2n%2FbtrkIQx5KDd%2FEp6UUeAceq4y7oGoBoKDdK%2Fimg.png)
[C++] ํ์ ํธ๋ฆฌ(Fenwick Tree)
ํ์ ํธ๋ฆฌ(Fenwick Tree) ํ์ ํธ๋ฆฌ๋ ๋ฐ์ด๋๋ฆฌ ์ธ๋ฑ์ค ํธ๋ฆฌ(Binary Indexed Tree)๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค. ์์๋ฅผ ๊ฐ๋ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ก์ ๋, ๊ตฌ๊ฐ์ ๋ํ ๊ฐ์ด๋ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒ ์ป์ ์ ์๋ ํธ๋ฆฌ ํํ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๊ธฐ๋ณธ ์๋ฆฌ https://www.acmicpc.net/blog/view/21 ํ์ ํธ๋ฆฌ (๋ฐ์ด๋๋ฆฌ ์ธ๋ฑ์ค ํธ๋ฆฌ) ๋ธ๋ก๊ทธ: ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ (Segment Tree) ์์ ํ์ด๋ณธ ๋ฌธ์ ๋ฅผ Fenwick Tree๋ฅผ ์ด์ฉํด์ ํ์ด๋ณด๊ฒ ์ต๋๋ค. Fenwick Tree๋ Binary Indexed Tree๋ผ๊ณ ๋ ํ๋ฉฐ, ์ค์ฌ์ BIT๋ผ๊ณ ํฉ๋๋ค. Fenwick Tree๋ฅผ ๊ตฌํํ๋ ค๋ฉด, ์ด๋ค ์ X www.acmicpc.net ํ์ ํธ๋ฆฌ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ์ด๋ค ์๋ฅผ ์ด์ง์๋ก ๋ํ๋์ ๋ ๋ง..