Assembled by GimunLee
์ ์ถ๋ ฅ ํจ์์ ์ฑ๋ฅ์ฐจ์ด๊ฐ ๋ง์ด ๋๊ธฐ ๋๋ฌธ์ scanf/printf๋ฅผ ์ฌ์ฉํฉ์๋ค.
CPP ์ปดํ์ผ๋ฌ๊ฐ ๋ณด๋ค ์์ธํ ์ค๋ฅ ์ฌ์ ๋ฅผ ๋ฆฌํดํด์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
3. ๋์ด๋๊ฐ ์ฌ๋ผ๊ฐ์๋ก ๋ฌธ์ ๋ฅผ ๋ฐ๋ก ํธ๋ ๊ฒ๋ณด๋ค ์ด๋ป๊ฒ ํ ๊ฒ์ธ์ง๋ฅผ ์ค๋ ๊ณ ๋ฏผํ์!
Bํ ์ด์์ ๋์ด๋์ ๊ฒฝ์ฐ์๋ 30๋ถ ~ 1์๊ฐ ์ด์์ ์๊ฐํ๊ณ ์์ ํ ํ์ด ์ ๋ต์ ์ธ์ฐ๊ณ ์์ํด์ผํฉ๋๋ค.
Visual studio์ ๊ฒฝ์ฐ์๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ write ํ๋๋ผ๋ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ง๋ง, ์ฑ์ ์ปดํ์ผ๋ฌ๋ read๋ง ํ๋๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Intermediate์์ Advanced ์ฌ์ด 2๋ฌธ์ ๊ฐ ์ถ์ ๋๋ฉฐ, 2๋ฌธ์ ๋ฅผ ๋ชจ๋ ํ๋ฉด A+(Advanced) ๋ฑ๊ธ์ ํ๋ํฉ๋๋ค.
A
: ๊ฒฝ์ฐ์ ์ or ์ํ ๊ด๋ฆฌ
A+
: ๊ฒฝ์ฐ์ ์ and ์ํ ๊ด๋ฆฌ
๊ฒฝ์ฐ์ ์๋ฅผ ๋ง๋๋ ๊ฒ๊ณผ ์ํ ๊ด๋ฆฌ๋ฅผ ํ์ตํฉ๋๋ค. ์ ์ฒด ๊ฒฝ์ฐ์ ์๋ฅผ ๋ง๋ค์ง ๋ชปํ๋ ์ฌ๋์ A+ ๋ฑ๊ธ์ ํ๋ํ ์ ์์ต๋๋ค.
์ ์ฒด ๊ฒฝ์ฐ์ ์๋ฅผ ๋ง๋๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ฌ๊ทํจ์๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ท๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๋๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฌ์ฉํ์ง๋ง ์ ๋ต์ ์ป์ ์ ์๋ ๊ฐ์ฅ ํ์ ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ํ์ต์๋ ๋ฐ๋์ ์ฌ๊ท ํจ์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์์์ผ ํ๋ฉฐ ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํ ์์ ๊ฒ์์์ ์ถ๋ฐํ์ฌ ๊ฐ์ง์น๊ธฐ๋ฅผ ์ด์ฉํ ๋ฐฑํธ๋ํน์ ๊ธฐ๋ฒ์ผ๋ก ๋์๊ฐ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค. ์ฌ๊ท ํจ์์ ๊ฒฝ์ฐ ๊ฐ์ง์น๊ธฐ๋ ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ถ๊ฐํ๊ธฐ ๋งค์ฐ ์ฝ๊ธฐ ๋๋ฌธ์ Advanced ๋์ด๋์์ ํ์ํ ์ต์ ํ๋ฅผ ์ถ๊ฐํ๊ธฐ์ ์ ํฉํฉ๋๋ค.
์ฌ๊ทํจ์์ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ, ์๊ธฐ ์์ ์ ํธ์ถํ๊ธฐ ์ ์ ๋ฐ๋์ ์ข ๋ฃ ์กฐ๊ฑด์ด ์์ด์ผํฉ๋๋ค.
void recursive(int n){
//์ข
๋ฃ์กฐ๊ฑด
if(n == 10){
return;
}
//์๊ธฐ ์์ ์ ํธ์ถ
recursive(n + 1);
}
int main(){
recursive(0);
return 0;
}
๋ฌธ์ ํ์ด์ ์์ด์ ์ํ๋ ์งํ ์ํฉ์ ํน์ ์์ ์์ ๋ฐ๋ผ๋ณธ ๋ชจ์ต์ ๋๋ค. ์๋ฅผ ๋ค์ด, 2๊ฐ์ ์ฃผ์ฌ์๋ฅผ ์ฐจ๋ก๋ก ๋์ง๋๋ฐ 1๊ฐ๋ฅผ ๋์ก์ ๋๋ผ๊ฑฐ๋ 2๊ฐ์ ํ๋๊ณต๊ณผ 2๊ฐ์ ๋นจ๊ฐ๊ณต์ด ๋ค์ด์๋ ์ฃผ๋จธ๋์์ 1๊ฐ์ ๋นจ๊ฐ๊ณต์ ๊บผ๋์ ๋์ ๊ฐ์ ๊ฒ๋ค์ ๋๋ค. ์ด์ฒ๋ผ ํน์ ํ ์ํ๋ฅผ ๊ธฐ๋กํ๊ณ ๊ธฐ์ตํ๋ ๊ฒ์ ์ํ ๊ด๋ฆฌ๋ผ๊ณ ํฉ๋๋ค. ์ํ ๊ด๋ฆฌ๋ง ์กด์ฌํ๋ ๋ฌธ์ ๋ค์ ์ฌ๋ฌ ๊ฐ์ง ์ ํ์ด ์๋๋ฐ, ๊ฐ์ฅ ๋ํ์ ์ธ ๊ฒ์ด ์์ ์ถฉ๋๊ณผ ๊ฐ์ ๋ฌธ์ ์ ๋๋ค.
์ํ ๊ด๋ฆฌ ๋ฌธ์ ์์) 4๋ฐฉํฅ์ผ๋ก ์์ง์ด๊ณ ์๋ ์์๋ค์ด ์๋ค. ์ด ์์๋ค์ ์๋ก ์ถฉ๋ํ๋ฉด ์ฌ๋ผ์ง๊ฒ ๋๋ค. ์์๋ค์ ์์ง์์ ๋ฌดํํ ์งํํ๋ค๊ณ ํ์ ๋ ์ต์ข ์ ์ผ๋ก ๋จ๋ ์์์ ๊ฐ์๋ฅผ ๊ตฌํ์์ค.
์์ ๊ฐ์ ๋ฌธ์ ๋ ๋ณ๋๋ก ๊ฒฝ์ฐ์ ์๋ฅผ ์์ฑํ ํ์๊ฐ ์์ผ๋ฉฐ ์ํ ๊ด๋ฆฌ๋ง ์ฒ๋ฆฌํ๊ฒ ๋๋ฉด ์ ๋ต์ ๋๋ฌํ ์ ์์ต๋๋ค. Aํ์ ๊ฒฝ์ฐ ์ํ ๊ด๋ฆฌ๋ง ์กด์ฌํ๋ ๋ฌธ์ ๊ฐ ์์ฃผ ์ถ์ ๋๋ฉฐ, ์ํ ๊ด๋ฆฌ๋ ๊ฐ ๋ฌธ์ ๋ง๋ค ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ์ ํ๋ฉด ์ ํ ์๋ก ์ํ ๊ด๋ฆฌ์ ๋ํ ์ค๋ ฅ์ด ๋๊ฒ ๋ฉ๋๋ค.
์์ ๊ฒ์์ ๊ทธ๋ํ ๋ฌธ์ ๋ฅผ ํ ์ ์๋ ๊ฐ์ฅ ๋๋ฆฐ ๋ฐฉ๋ฒ์ด๋ฉฐ, ์ฃผ๋ก ์ฌ๊ท๋ฅผ ์ด์ฉํ๊ฒ ๋ฉ๋๋ค. ์ฌ๊ท๋ฅผ ์ด์ฉํ ์์ ๊ฒ์์ ๋งค์ฐ ๋๋ฆฌ๊ณ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด์ง๋ง, ๋จ ๋ช ๋ผ์ธ ์์ค์ ์ต์ ํ ์ฝ๋๋ง ์ฝ์ ํ๋๋ผ๋ ์๋นํ ์์ค์ ์ต์ ํ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ค์ ๋จ๊ณ๋ก ๋์๊ฐ๊ธฐ ์ํ ์ง๊ฒ๋ค๋ฆฌ๋ก์ ํ์ฉํ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค. ์ ์ฒด ๊ฒฝ์ฐ์ ์๋ฅผ ๋ง๋ค์ด๋ผ ์ค ์์์ผ ํ๋ ๊ฒ์ Bํ ์์์์๊ฒ๋ ๊ณตํต์ ์ธ ์ฌํญ์ธ๋ฐ, ์ญ์ค์ ์ผ๋ก ์ ์ฒด ๊ฒฝ์ฐ์ ์๋ฅผ ๋ณผ ์ ์๋ค๋ฉด ์ต์ ํ๋ ํ์ด๋ ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊น์ด์ฐ์ ํ์์ ์ต์๊ฐ ํน์ ์ต๋จ๊ฑฐ๋ฆฌ ๋ฌธ์ ์์ ์์ฃผ ์ฌ์ฉ๋๋ ํ์ด ๋ฐฉ๋ฒ์ ๋๋ค. ํ ์ง์ ์์ ์ถ๋ฐํด์ ๋์ฐฉ์ง(ํน์ ๊ทธ๋ํ์ ๋ง์ง๋ง ์ ์ )์ ๋๋ฌํ ๋๊น์ง ์ด๋ํ๋ฉฐ, ์ฌ๊ท๋ฅผ ์ด์ฉํ ๊ตฌํ์ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ท๋ฅผ ์ด์ฉํด์ ์ ์ฒด ๊ฒฝ์ฐ์ ์๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ฝ๊ธฐ ๋๋ฌธ์ Aํ์์๋ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๋๋น ์ฐ์ ํ์์ ์ฐ์ ์์ ํ ๋ฑ์ ์์ฉํ ๋ ๊ฐ๋ ์ฌ์ฉ๋์ง๋ง Aํ์์๋ ์์ฃผ ์ฐ์ง ์์ต๋๋ค. for๋ฌธ๊ณผ ํ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
๋ฐฑํธ๋ํน์ ์์ ๊ฒ์์์ ๋์๊ฐ ์๋นํ ์์ค์ ์ต์ ํ๋ฅผ ์ด๋ฃจ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฃผ๋ก ๊ฐ์ง์น๊ธฐ(pruning)๋ ๋ฉ๋ชจ์ด์ ์ด์ (memoization) ๋ฑ์ ๋ฐฉ๋ฒ์ ํ์ฉํ๊ณ , ๋ ๊ฐ์ง ๋ชจ๋ ํ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด ๋๋ฌธ์ ๊ทธ๋ํ ๋ฌธ์ ์ ๊ฒฝ์ฐ ๋ง์ ๊ฒฝ์ฐ์์ BFS๋ณด๋ค DFS๊ฐ ์ฑ๋ฅ๋ฉด์์ ์ฐ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ ์ง ๋ฐฑํธ๋ํน์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ(DP)๋ณด๋ค ๋น ๋ฆ ๋๋ค.
๋ฌธ์ ๋ฅผ ํ์ด๋๊ฐ๋ฉด์ ๋์ถํ ์ค๊ฐ ๊ฐ์ ๋ฉ๋ชจํ๋ฉด์ ํธ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ค๋ณต ์ฐ์ฐ์ ์ค์ผ ์ ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ด์ผํ๋ ๋ฌธ์ ์์ ๋งค์ฐ ๋์ ์ฑ๋ฅ ํฅ์์ด ์์ผ๋ฉฐ, ๋ช ์ค์ ์ฝ๋ ๋ง์ผ๋ก๋ ์์ฒญ๋ ์ฑ๋ฅ ํฅ์์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ํ๊ณ๋ก ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค ์ ์ฅํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ์๋ ์ผ๋ถ๋ง ๋ฉ๋ชจ์ด์ ์ด์ ์ ํ๋๋ผ๋, ์๋นํ ์์ค์ ์ฑ๋ฅ ํฅ์์ด ๊ฐ๋ฅํฉ๋๋ค.
์ ์ง ๋ฐฑํธ๋ํน์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ(DP)๋ณด๋ค ๋น ๋ฆ ๋๋ค.
- LinkedList, Stack, Queue, Tree
- ์ด๋ถํ์, MST, disjointset
- ํด์ฑ : Bํ๋ณด๋๋ฐ ํด์ฑ์ ๋ชจ๋ฅด๊ณ ์์ฉํ ์ค ๋ชจ๋ฅด๋ฉด ๋ฐ๋ก ํ ๊นจ๋ฌผ์ด์ผ๋จ
- ๋งํฌ๋๋ฆฌ์คํธ ๊ตฌํ
- ํธ๋ฆฌ ๊ตฌํ (์์ ์ ์ ์ ํด์ง ํธ๋ฆฌ)
- ๋ฉ๋ชจ์ด์ ์ด์
- ๋นํธ๋ง์คํน
- ๋ถํ ์ ๋ณต
- Sort (ํต, ๊ณ์, ๊ธฐ์, ๋จธ์ง)
- Heap (์ค์ผ์ค๋ง)
- Trie : ๋ฌธ์์ด ๊ด๋ จ ๋ฌธ์
- LCA(Lowest Common Ancestor) (๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ, ๊ฐ๊ณ๋)
- BST(Binary Search Tree)
- Segment Tree
- Sqrt Decompisition