์คํ์ ํ์ ์ ์ถ,LIFO :Last In First Out ๊ตฌ์กฐ๋ก, ๊ฐ์ฅ ๋จผ์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๊ฐ ๋งจ ์๋์ธต์ ์์ด๊ณ , ๊ฐ์ฅ ๋์ค์ ๋ค์ด๊ฐ ์๋ฃ๊ฐ ๋งจ ์์ ์์ธ๋ค. ๊ตฌ๋ฉ์ด ํ๋๋ฐ์ ์๋ ๋ณ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค.โผ push() : ์คํ์ ์์๋ฅผ ์ถ๊ฐํ๋ค.โผ pop(
replace(old, new, [count])' ํ์์ผ๋ก ์ฌ์ฉํ๋ค. old : ํ์ฌ ๋ฌธ์์ด์์ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋ฌธ์ new: ์๋ก ๋ฐ๊ฟ ๋ฌธ์ count: ๋ณ๊ฒฝํ ํ์. ํ์๋ ์ ๋ ฅํ์ง ์์ผ๋ฉด old์ ๋ฌธ์์ด ์ ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ค. ๊ธฐ๋ณธ๊ฐ์ ์ ์ฒด๋ฅผ ์๋ฏธํ๋ count=-
๋ฐ์ฌ๋ฆผ ์ฌ๋ฆผ ๋ด๋ฆผ ๋ฒ๋ฆผ ์์์ ์๋ฆฌ์ ์ง์ f-string์ ์ด์ฉํด์ ์์์ ์๋ฆฟ์๋ฅผ ์ง์
์ฐ์ ํด๋น ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ด์ ๋ ์์ฝ์ด๋ฅผ ๋ณ์๋ช ์ผ๋ก ์ฌ์ฉ ํ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ์ด ํ๋ก๊ทธ๋๋ฐ์ ๊ณต๋ถํ๋ฉฐ ์ด๋ฌํ ์ค์๋ฅผ ๋ง์ด ํ ์ ์๋ ์์ฝ์ด๋ค์ด sum(), min(), max() ๋ฑ์ด ์์ ๊ฒ์ด๋ค. ์ด๋ฌํ ์์ฝ์ด๋ค์ ๊ฐ๊ฐ์ ๊ธฐ๋ฅ๋ค์ด ์๋ ํจ์์ด๋ค. (์ด๋ฆ๋ง
key ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ง๋ sort() ํจ์๋ key ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋๊ณ ๊ธฐ๋ณธ๊ฐ์ ์ค๋ฆ์ฐจ์์ ๋๋ค. ๋ํ lambda์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. a=[(1,2),(0,1),(5,1),(5,2),(3,0)] ์ฒซ๋ฒ์งธ ์ธ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ c=sorted(a,ke
๋ฐฑํธ๋ํน์ด๋ DFS(๊น์ด ์ฐ์ ํ์)์ ๋ฐฉ์์ ๊ธฐ์ค์ผ๋ก ๋ถํ์ํ ๊ฒฝ์ฐ๋ฅผ ๋ฐฐ์ ํ๋ฉฐ ์ํ๋ ํด๋ต์ ๋๋ฌํ ๋๊น์ง ํ์ํ๋ ์ ๋ต์ด๋ค. ์คํ์ ์๋ฃ๊ตฌ์กฐ๋ก ์ฌ์ฉ ๋ฐฑํธ๋ํน์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ดํด๋ณธ๋ค๋ ๋ถ๋ฅดํธ ํฌ์ค ์ ๋ต์ ์ทจํ์ง๋ง ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํค๊ธฐ ์ํ ๊ฐ์ง์น๊ธฐ
while๋ฌธ๊ณผ ์ฐจ์ด์ ์ do{...}์์ ์คํ๋ฌธ์ด ์ฒ์์ ํ ๋ฒ์ ๋ฌด์กฐ๊ฑด ์คํ๋๋ค๋ ๊ฒ.๊ทธ ์ดํ while ๋ค์ ์กฐ๊ฑด๋ฌธ์ ์ฒดํฌํ์ฌ ์ฐธ์ด๋ฉด do{...} ๋ธ๋ญ์ ๋ค์ ์ํํ๊ณ ๊ฑฐ์ง์ด๋ฉด ๊ทธ๋๋ก ๋ฐ๋ณต์ ์ข ๋ฃํ๋ค.
๐์์ด(permutation) ๊ตฌํ๊ธฐ c++์ algorithm ํค๋์๋ n๊ฐ์ ์์์ ์์ด์ ๊ตฌํ ์ ์๋ next_permutation ํจ์๊ฐ ์๋ค. ์์ด์ ๊ตฌํ ์ปจํ ์ด๋(๋ฐฐ์ด)์ ์์๊ณผ ๋ iterator๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค. 2-1. ๋ง์ฝ ํด๋น ๋ฐฐ์ด์ ๋ค์ ์์ด์ด
๋ฒ์๊ธฐ๋ฐ for๋ฌธ์ c++11์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ด๋ค.๊ธฐ์กด์ for๋ฌธ๊ณผ ๋ฌ๋ฆฌ ์์๊ณผ ๋์ ์ ์๋ ค์ฃผ์ง ์์๋ ์์์ ์ฒ์๋ถํฐ ๋๊น์ง ์ํํด์ฃผ๋ ๋ฐ๋ณต๋ฌธ์ด๋ค. python์ for i in a ๋ฌธ๋ฒ๊ณผ ๋น์ทํ๋ค.๋ฐฐ์ด ์ ์์๋ค์ ๋ชจ๋ ์ถ๋ ฅํ๊ณ ์ ํ ๋๊ธฐ์กด for๋ฌธ๊ณผ ๋ฒ์๊ธฐ๋ฐ for
string์ char\* ํ์ผ๋ก ๋ณํํด์ฃผ์ด ๋ฌธ์์ด ๊ด๋ จ ํจ์๋ค์ธ strcmp(), strcat()๋ฑ์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค.string์ int๋ก ๋ณํํ ๋ stoi(s) ํจ์๊ฐ ์ค๋ฅ๋๋ฉดatoi(s.c_str()) ๋ก ์ฐ์!
scanf("%1d", &๋ณ์);101111101010101011111011์ด๋ฐ์์ ์ ๋ ฅ์?
fillํจ์๋ ์ด๋ค ์ฐ์์ฑ์ ๋ ์๋ฃ๊ตฌ์กฐ(๋ฒกํฐ๋ ๋ฐฐ์ด ๊ฐ์)์ ์์์ ๋ถํฐ ์ฐ์๋ ๋ฒ์๋ฅผ ์ด๋ค ๊ฐ์ด๋ ๊ฐ์ฒด๋ก ๋ชจ๋ ์ง์ ํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ํจ์์ด๋ค.\`- first: ์ฑ์ฐ๊ณ ์ ํ๋ ์๋ฃ๊ตฌ์กฐ์ ์์์์น iteratorlast: ์ฑ์ฐ๊ณ ์ ํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋์์น itera
typedef๋ ์ฌ์ ์ ํจ์๋ค.์๋ฅผ ๋ค์ดtypedef string s=> typedef๊ฐ string์ ์ด์ ๋ถํฐ s๋ผ๊ณ ๋ถ๋ฅด๊ฒ ๋ค๋ ๋ป์ฆ, ์ด๋ ๊ฒ ์ธ ์ ์๋ค.
assertํจ์๋ ๋๋ฒ๊น ๋ชจ๋์์ ๊ฐ๋ฐ์๊ฐ ์ค๋ฅ๊ฐ ์๊ธฐ๋ฉด ์น๋ช ์ ์ผ ๊ฒ์ด๋ผ๋ ๊ณณ์ ์ฌ์ด๋๋ ์๋ฌ ๊ฒ์ถ์ฉ ์ฝ๋๋ค.assert(score>=0)=> 0๋ณด๋ค ์์ ์ ๋ ฅ๊ฐ์ด ์ค๋ฉด assert error ๋ฐ์
์ ๋ ฅ์ ์ฃผ๋ค๊ฐ ์์ค ๋ ๋๋๋ค๊ณ ๋ช ์๋์ด ์์ ๋ ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ๊ตฌ์ถํ๋ฉด ๋๋คn์ด ์ ์๋ ํ์ ๊ณผ ๋ค๋ฅผ ๋๋ while๋ฌธ์ด ์คํ๋์ง ์์EOF๋ฅผ ๋ง๋ ๋๊น์ง ๋ฌดํ ์ ๋ ฅ์ฝ์ ์ฐฝ์์๋ EOF๋ฅผ ์๋์ผ๋ก ๋ฃ์ด์ค์ผํ๋ค cmd+z
a๋ถํฐ ์์ํด z๋ถํฐ ์ ๋ ฅ์ ๋ฐ๋๋ฐ ์ด๋ฅผ ์ ์ 0~ 26๊น์ง ํํํ๊ณ ์ถ๋ค๋ฉด
reverse
์์์ง์ ์ผ๋ก๋ถํฐ ๋ช๊ฐ์ ๋ฌธ์์ด์ ๋ฝ์๋ ๋๋ค.(์์์ง์ , ๋ช๊ฐ) ์ด๋ ๊ฒ 2๊ฐ์ ๋งค๊ฐ๋ณ์๊ฐ ๋ค์ด๊ฐ๊ฒ ๋ฉ๋๋ค. ๋ง์ฝ ์์์ง์ ๋ง ๋ฃ๊ฒ ๋๋ฉด ๋ง์ง๋ง๊น์ง ๋ฌธ์์ด์ ๋ฝ์๋ ๋๋ค.
์ด๋ ํ ๋ฌธ์์ด์ด ๋ค์ด์๋ ์ฐพ๋ ํจ์~๋ง์ฝ ์ฐพ์ง ๋ชปํ๋ค๋ฉด ๋ฌธ์์ด์ ๋ ์์น์ธ string::npos๋ฅผ ๋ฐํํ๋ค.
split C++์์๋ ๋ถํํ๊ฒ๋ ๋ฌธ์์ด์ ๊ธฐ๋ฐ์ผ๋ก splitํจ์๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํด์ผ ํฉ๋๋ค. ๋ถํดํ ๊ธฐ์ค์ด ๋๋ delimiter๋ฅผ ๊ธฐ๋ถ์ผ๋ก input์์ ๊ทธ๊ฑธ ์ฐพ๊ณ ๊ทธ๊ฑธ ๊ธฐ๋ฐ์ผ๋ก input์ ์์์๋ถํฐ ์ง์๊ฐ๋ฉฐ ๋ค์ ์ฐพ๋ ๋ก์ง์ ๋๋ค.
๋ฌธ์์ด์ด ์ซ์์ธ์ง ๋ฌธ์์ธ์ง ํ๋ณํ ๋๋๋ฌธ์์ด๋ก ๋ ์ซ์๋ฅผ int ํํ๋ก ๋ฐ๊ฟ ๋ ์ด๋ค.s.atoi(c_str())๋ฌธ์์ด์ด ๋ฌธ์๋ผ๋ฉด 0์ returnํ๊ณ ์ซ์๋ผ๋ฉด ์ซ์๋ก returnํ๋ค.
pair: ๋ ๊ฐ์ง ๊ฐ์ ๋ด์ ๋tuple: ์ธ ๊ฐ์ง ์ด์์ ๊ฐ์ ๋ด์ ๋tie: pair๋๋ tuple์ ๋ค์ด์๋ ๋๊ฐ์ง ์ด์์ ๊ฐ์ ๋์ง์ด๋ผ ๋ ์ฌ์ฉ
key์ valueํํ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ ๋ ๋-๋ธ๋ํธ๋ฆฌ๋ผ๋ ๊ตฌ์กฐ๋ฅผ ๋ด์ฅ"๋ด์ง์ค" : attention, "์์ด๋ธ" : afterLike์ ๋ ฌ์ ๋ณด์ฅ x์ ๋ ฌ์ ๋ณด์ฅ map<string, int>map์ find ๋ฉ์๋๋ ์ฐพ์ง ๋ชปํ๋ฉด end() ์ดํฐ๋ ์ดํฐ๋ฅผ ๋ฐํ
์ (set)์ ํน์ ์์์ ๋ฐ๋ผ ๊ณ ์ ํ ์์๋ฅผ ์ ์ฅํ๋ ์ปจํ ์ด๋์ด๋ฉฐ, ์ค๋ณต๋๋ ์์๋ ์๊ณ ์ค๋ก์ง ํฌ์ํ(unique) ๊ฐ๋ง ์ ์ฅํ๋ ์๋ฃ ๊ตฌ์กฐ๋ค.๋๋จธ์ง ์ฌํญ์ map๊ณผ ๋๊ฐ๋ค.
multiset์ ์ค๋ณต๋๋ ์์๋ ์ง์ด๋ฃ์ ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋ค. key, value ํํ๋ก ์ง์ด๋ฃ์ ํ์๋ ์๊ณ ๋ฃ์ผ๋ฉด ์๋์ ์ผ๋ก ์ ๋ ฌ๋๋ ํธ๋ฆฌํ ์๋ฃ๊ตฌ์กฐ๋ก erase, find, insert๊ฐ ๊ฐ๋ฅํ๋ค.
stack์์๋ top์ ํตํด์๋ง ์์๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.queue์์๋ front๋ก ์์์๋ง ์์๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.deque๋ ์๋ค๋ก ์ฐธ์กฐ๊ฐ ๊ฐ๋ฅํ ์๋ฃ๊ตฌ์กฐ๋ก index๋ฅผ ์ด์ฉํด์ ๋ฐฐ์ด์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ
struct๋ฅผ ์ด์ฉํด์ x๋ฅผ 1์์๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ y๊ฐ 2์์๋ก ์ค๋ฆ์ฐจ์ z๊ฐ 3์์๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ธฐ
์ฃผ์์ฐ์ฐ์๋ ๋ณ์์ ์ด๋ฆ ์์ ์ฌ์ฉํ์ฌ, ํด๋น ๋ณ์์ ์ฃผ์๊ฐ์ ๋ฐํ์ฐธ์กฐ ์ฐ์ฐ์๋ ํฌ์ธํฐ์ ์ด๋ฆ์ด๋ ์ฃผ์ ์์ ์ฌ์ฉํ์ฌ, ํฌ์ธํฐ์ ์ ์ฅ๋ ์ฃผ์์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ ๋ฐํ์ฃผ์๊ฐ &์ \*์ ํตํด ๊ฐ์ผ๋ก ๋ฐํํ ์ ์๋ค.\-> ํ์ดํ ํจ์๋ฅผ ํตํด ๊ฐ์ฒด์ ์์์ ์ ๊ทผํ ์ ์
nextpermutation๊ณผ prevpermutation์ ์ด์ฉ >next_permutation ์ค๋ฆ์ฐจ์์ ๋ฐฐ์ด์ ๊ธฐ๋ฐ์ผ๋ก ์์ด์ ๋ง๋ค ์ ์๋ค. prev_permutation ๋ด๋ฆผ์ฐจ์์ ๋ฐฐ์ด์ ๊ธฐ๋ฐ์ผ๋ก ์์ด์ ๋ง๋ค ์ ์๋ค. ๋งค๊ฐ๋ณ์๋ก๋ ์์ด์ ๋ง๋ค ๋ฒ์๋ฅผ ๊ฐ
vector๋ push_back()์ ํตํด ๋ฐฐ์ด์ ์์๋ฅผ ๊ณ์ ๋๋ฆด ์ ์๋ค. ๊ทธ๋ฌ๋, vector๊ฐ ์ฒ์ ์ ์ธ๋ ๋ ์์ฝ๋์ด ์๋ '์ฉ๋'์ ์ด๊ณผํด๋ฒ๋ฆฌ๋ฉด, ๊ทธ๋ณด๋ค ๋ 'ํฐ' (2๋ฐฐ ์ ๋) ์ฉ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ํ ๊ธฐ์กด์ ์์๋ฅผ ๋ชจ๋ ๋ณต์ฌํ๊ณ , ๊ธฐ์กด์ ๋ฉ๋ชจ๋ฆฌ๋ ํด์ ํ
toupper์ ์๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ๋ฐ๊ฟ์ฃผ๊ณ tolower์ ๋๋ฌธ์๋ฅผ ์๋ฌธ์๋ก ๋ฐ๊ฟ์ค๋ค. ๋ ํจ์์ ์ํ๋ฒณ์ด ์๋ ๊ธ์๋ฅผ ๋ฃ์ผ๋ฉด ๊ทธ ๋ฌธ์ ๊ทธ๋๋ก ๋ฐํํ๋ค.๐จ ์ฃผ์ํด์ผํ ์ ์ toupper, tolower ํจ์๋ ASCII ์ฝ๋๋ฅผ ๋ฐํํ๋ค๋ ๊ฒ์ด๋ค.๊ทธ๋์ ๋ฌธ์๋ก ๋ฐ๊พธ