์ฐ๊ฒฐ๋ฆฌ์คํธ6 ๋ฐฑ์ค - [BOJ 12094] A์ B ๋ฐฑ์ค ์จ๋ผ์ธ ์ ธ์ง(BOJ)์์ ์ ๊ณต ๋๋ 12094๋ฒ ๋ฌธ์ ๋ ๊ทธ๋ฆฌ๋(Greedy, ํ์๋ฒ) ์ ํ์ด๋ค. ํด๋น ๋ฌธ์ ๋ code.plus ์ค๊ธ 1/3, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒ์๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ์๋น์ด๋ A์ B๋ก๋ง ์ด๋ฃจ์ด์ง ์์ด ๋จ์ด๊ฐ ์กด์ฌํ๋ค๋ ์ฌ์ค์ ๋๋๋ค. ๋ํ์ ์ธ ์๋ก AB (Abdominal์ ์ฝ์), BAA (์์ ์ธ์ ์๋ฆฌ), AA (์ฉ์์ ์ข ๋ฅ), ABBA (์ค์จ๋ด ํ ๊ทธ๋ฃน)์ด ์๋ค. ์ด๋ฐ ์ฌ์ค์ ๋๋ ์๋น์ด๋ ๊ฐ๋จํ ๊ฒ์์ ๋ง๋ค๊ธฐ๋ก ํ๋ค. ๋ ๋ฌธ์์ด S์ T๊ฐ ์ฃผ์ด์ก์ ๋, S๋ฅผ T๋ก ๋ฐ๊พธ๋ ๊ฒ์์ด๋ค. ๋ฌธ์์ด์ ๋ฐ๊ฟ ๋๋ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง ์ฐ์ฐ๋ง ๊ฐ๋ฅํ๋ค. ๋ฌธ์์ด์ ๋ค์ A๋ฅผ ์ถ๊ฐํ๋ค. ๋ฌธ์์ด์ ๋ค์ง๊ณ ๋ค์ B๋ฅผ ์ถ๊ฐํ๋ค. ์ฃผ์ด์ง ์กฐ๊ฑด์ ์ด์ฉํด์ S๋ฅผ T๋ก ๋ง๋ค ์ ์๋์ง ์๋์ง ์์๋ด๋ .. 2024. 2. 29. 6. STL ์ฌ์ฉํ๊ธฐ - std::list STL ์ด๋? C++ ์์ ์ ๊ณตํ๋ STandard Library๋ฅผ STL์ด๋ผ๊ณ ํ๋ค. ์๋ฐ์์๋ ์๋ฐ์์ ์ ๊ณตํ๋ API๋ผ๊ณ ๋ณผ ์ ์๋ค. ์ง๊ธ๊น์ง list์ ๋ํด ์ง์ ์ค๊ณํด๋ณด์๊ณ list์ ๋ํ ์ค๋ช ์ด ์ถฉ๋ถํ๋ค. ์ด๋ฒ์๋ STL์ ์ง์ ์ฌ์ฉํ๋ฉด์ ์ด๋ค ๊ธฐ๋ฅ์ด ์๊ณ ์ธ์ , ์ด๋ป๊ฒ ์ฌ์ฉํ ์ง ์๊ฐํด๋ณด๋๋ก ํ์. โป ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ Method๋ ์ ์ธํ๋ค. (ํจ์จ์ ์ฌ์ฉ) std::list Construct Method Description (constuctor) ๋ฆฌ์คํธ ์์ฑ์ ์ ๋ ฅ ๊ฐ operator= = ๊ธฐํธ์ ๋ํ ์ฐ์ฐ ๋ฐฉ๋ฒ Iterators Method Description begin() ๋ฆฌ์คํธ Head์ ์ํ ๋ฐ์ดํฐ ์์น end() ๋ฆฌ์คํธ ๋ง์ง๋ง ์์น != Tail, null ๊ฐ rbegin.. 2024. 2. 11. 5. ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Circular Linked List) ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋? ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์์ ๋์ด ์ฒ์๊ณผ ์ฐ๊ฒฐ๋์ด ์๋ ํํ๋ฅผ ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ผ๊ณ ํฉ๋๋ค. STL์๋ ๊ตฌํ๋์ด์์ง ์๊ณ ์์ง ํ์ ์์ค์ด์ง๋ง, ์ค์ ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ ๋ณธ ์ ์ด ๋ง์ด ์์ต๋๋ค. ๊ทธ๋์ ๋จ์ํ๊ฒ๋ง ๋ง๋ค์ด๋ณด๋๋ก ํ ๊ฒ์ธ๋ฐ, ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ ํํ๋ก ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. (์ค์ ๋ก ์ํ์ ์ธ ์์๋ ํ ๋๋ ์ฌ๊ท๋ฅผ ๋ง์ด ์ฌ์ฉํ๋๋ฏ) ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Circular Linked List) ๊ตฌํํ๊ธฐ ๋ง์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ง๋ ์๊ฒ ์ต๋๋ค. ๋ ธ๋ #pragma once template class Node { public: Node(T data); T getData() const; Node* getNext() const; Node* getPrev() const; void setNext(Node* .. 2024. 2. 10. 4. STL ๋ฐ๋ผ์ก๊ธฐ - ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Doubly Linked List) ๊ตฌํ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ? ์ฌ๊ธฐ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ํ ๊ฐ๋ ์ ์๊ฒ ๋์๊ณ ์ฌ๊ธฐ์ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ๊ตฌํํด๋ณด์๋ค. ๋, ์์ ํฌ์คํ ์์ ์ฐ๊ฒฐ์ ๋ํ ๋ฐฉ๋ฒ์ ๋งํ๋๋ฐ '์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ' ๋ ์๋ฐฉํฅ(์ด์ค)์ผ๋ก ๊ตฌ์ฑ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ฆ, ์ฑ๊ธ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ์ฝ์ค ์ฌํ์ด๋ผ๋ฉด ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ์์ ์ฌํ์ด๋ค. ์ด์ ๋ํด์ ๋ด๊ฐ ์๊ฐํ ์์์ด๊ธฐ ๋๋ฌธ์ ํ ๋ฒ ์๊ฐํด๋ณด๊ณ ๋น์ทํ ์์๋ฅผ ์ฐพ์์ ๋ณธ์ธ๋ง์ ๊ฐ๋ ์ผ๋ก ์ดํดํ๊ธธ.. ์ด๋ฒ STL ๋ฐ๋ผ์ก๊ธฐ ํฌ์คํธ๋ standard library์ธ list๋ฅผ ๋ง๋ค์ด๋ณด๊ฒ ๋ค. ๋จผ์ , list์ ์ด๋ค ๊ธฐ๋ฅ์ด ์๋์ง ํ ๋ฒ ์์๋ณด์. ์ฐ๋ฆฌ๋ STL list์ ์ด๋ค ๊ธฐ๋ฅ์ด ๊ตฌํ๋์ด์๋์ง ํ์ ํ ๋ค์ ์ด๋ฅผ ์ ๋ฆฌํ ๊ฒ์ด๋ค. ๊นํ๋ธ ์ด์์ ๊ตฌํํ ๋ด์ฉ์ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐํ์ผ๋ก ๋ ํ์งํ ๋ฆฌ์ ์ ์ฅํ .. 2024. 2. 7. 3. STL ๋ฐ๋ผ์ก๊ธฐ - ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Singly Linked List) ๊ตฌํ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ? ์ด์ 2. Linked List (์ฐ๊ฒฐ ๋ฆฌ์คํธ) ํฌ์คํธ์์ ์ค๋ช ๋ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค. ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ๋ฐ์ดํฐ ๊ฐ์ '์ฐ๊ฒฐ'๋์ด ์๋ค๊ณ ํ๋๋ฐ, ์ฐ๊ฒฐ์ ์๋์ ๊ฐ์ด ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. A ์์ B๋ก ๊ฐ ๋(๋จ๋ฐฉํฅ), A ใ ก> B ๋๋ B ใ ก> A A ์์ B๋ก ๊ฐ๊ณ B์์๋ A๋ก ๊ฐ ์ ์์ ๋(์๋ฐฉํฅ), A B ๋๋ A ใ ก B ๋จ์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ์ด ์ค, ๋จ๋ฐฉํฅ์ ๋ํ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋จ์ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ด๋ค. ๋์ , ์ฃผ์ํ ์ ์ด ์๋ค. A๊ฐ ์์์ , B๊ฐ ์ข ์ ์ธ ๊ฒฝ์ฐ์๋ B์์ A๋ก ๊ฐ ์ ์๋ค. ์ฆ, ์ํ์ด ๋ฐ์ํ์ง ์๋๋ค๋ ์ ์ด๋ค. A ใ ก> B ใ ก> A ใ ก > B ( X ) A ใ ก> B ใ ก> ๋ ( O ) ๋จ์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ์ด๊ฒ ๋์ด๋ค. ๊ทธ๋ผ, ์ฃผ๋ก ์ด๋ป๊ฒ ์ฌ์ฉ๋๊ณ .. 2024. 2. 4. 2. ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Linked List) ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ? ๋จผ์ , List๋ฅผ ์๊ฐํ๋ฉด ์ญ ~ ๋์ด๋์ด ์๋ ๊ฒ์ด ๋ ์ค๋ฅด์๋์? ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ๋ง ๊ทธ๋๋ก ์ญ ~ ๋์ด๋์ด ์๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ฐ์ดํฐ๋ฅผ ์๋ก ์ฐ๊ฒฐํ๊ณ ์๋ ๊ฒ์ด์ฃ . ์ด? ์ญ ~ ๋์ด๋์ด์๊ณ ์ฐ๊ฒฐ๋์ด์๋ ๊ฒ์ '๋ฐฐ์ด' ์๋๊ฐ์? ๋ง์ต๋๋ค. ์๋ฃ๊ตฌ์กฐ์ ๊ธฐ๋ณธ์ด์ ๋ฐ์ดํฐ๊ฐ ์์ฐจ์ ์ผ๋ก ๋์ด๋์ด ์๋ ๊ฒ์ ๋ฐฐ์ด์ ๋๋ค. ๊ทธ๋ผ ์ฐ์๋ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ฐฐ์ด(Array)๊ฐ ์๋๋ฐ ์ Linked List๋ฅผ ์ฌ์ฉํ๋์? ๋ฐฐ์ด๊ณผ Linked List์๋ ์์ฐํ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์์ ํฌ์คํ ์์ ๊ฐ ์๋ฃ๊ตฌ์กฐ๋ ํ์์ ๋ฐ๋ฅธ ์ฌ์ฉ์ฒ๊ฐ ์๊ณ , ์ฌ์ฉ์๊ฐ ์ ๋์ ์ผ๋ก ์ฌ์ฉํด์ผ ํจ์ ํํํ์ต๋๋ค. ๊ทธ๋์ ๋ฐฐ์ด์ด๋ผ๋ ์๋ฃ๊ตฌ์กฐ์ ๋ํด ์๊ณ Linked List๋ผ๋ ์๋ฃ๊ตฌ์กฐ์์ ์ฐจ์ด์ ์ ์์์ผํฉ๋๋ค. ์ฐจ์ด์ ์.. 2024. 2. 4. ์ด์ 1 ๋ค์