CS
2024.10.29
์คํ (Stack) ์ด๋?์์๊ฐ ๋ณด์กด๋๋ ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์คํ์ LIFO(Last In, First Out) ๊ตฌ์กฐ๋ก, ๋ง์ง๋ง์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฅ ๋จผ์ ๋์ค๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ผ๊ธฐํ๋ค.์์ธ ์ ์๋ ํ๋
ธ์ด ํ์ ์์๋ก ์๊ฐํ๋ฉด ๋๋ค.์ฅ๋จ์ ์ฅ์ ๋ฐ์ดํฐ์ ์ฝ์
๊ณผ ์ญ์ ๊ฐ O(1) ์๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ ธ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ๊ฐ ๋๋ค.๋จ์ ์ค๊ฐ๊ณผ ๋ง์ง๋ง์ ์๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ค๊ณ ํ๋ฉด ๋นํจ์จ์ ์ด๋ค.๊ตฌํ#include ์ฌ์ฉ#include #include using namespace std;int main(void) { stack s; s.push(1); s.push(2); s.push(3); cout ์ ์ ํ ๋น ๋ฐฉ์์ผ๋ก ๊ตฌํ#ifndef CUSTOMSTACK_HPP#define CUSTOMSTACK_HPP#define MAX_SIZE ..
CS
2024.10.29
๋ฐฐ์ด (Array)์ด๋?๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ๊ตฌ์กฐ๋ฅผ ์ด์ผ๊ธฐํ๋ค.๋์ผํ ํ์
์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์์น์ ์ ์ฅํ๋ค.์ฅ๋จ์ ์ฅ์ ์ธ๋ฑ์ค๋ฅผ ํตํด ๊ฐ ์์์ O(1) ์๊ฐ์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค.๊ตฌํ์ด ๊ฐ๋จํ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ํจ์จ์ ์ด๋ค.๋จ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋์ด์๊ธฐ๋๋ฌธ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ์ํด์๋ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํด์ผํ๋ค.์ค๊ฐ์ ์์๋ฅผ ์ฝ์
ํ๊ฑฐ๋ ์ญ์ ํ ๊ฒฝ์ฐ์๋ ํด๋น ์์ ์ด์ธ์ ๋ชจ๋ ์์๋ฅผ ์ด๋ํด์ผํ๋ฏ๋ก ๋นํจ์จ์ ์ด๋ค.๊ตฌํ#include int main(void) { // stack int number[5] = {1, 2, 3, 4, 5}; char s[5] = {'a', 'b', 'c', 'd', 'e'}; // heap int* arr = new int[5]; arr[0] = 1; arr[1] = 2; delete arr..
CS
2024.10.29
์๋ฃ๊ตฌ์กฐ๋? ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ตฌ์กฐ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์กฐ์งํ๊ณ ์ ์ฅํ๋๋์ ๋ฐ๋ผ ๊ฒ์, ์ฝ์
, ์ญ์ ๋ฑ์ ์์
์ด ๋ ๋น ๋ฅด๊ณ ๊ฐ๋จํ๊ฒ ์ด๋ฃจ์ด์ง ์ ์๋ค.์๋ฃ๊ตฌ์กฐ๋ ํน์ ์ํฉ์์ ๋ ํจ์จ์ ์ธ ์ฑ๋ฅ์ ๋ณด์ด๋ฉฐ, ๊ฐ๋ฐ์๋ ๋ฌธ์ ์ ๋ง๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ํํด ์ฑ๋ฅ์ ์ต์ ํํ ์ ์๋ค. ๊ตฌํ ๋ฐ ์ธ๋ถ๋ด์ฉ 1. Array. [์๋ฃ๊ตฌ์กฐ] ๋ฐฐ์ด (Array)๋ฐฐ์ด์ด๋?๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ๊ตฌ์กฐ๋ฅผ ์ด์ผ๊ธฐํ๋ค.๋์ผํ ํ์
์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์์น์ ์ ์ฅํ๋ค.์ฅ๋จ์ ์ฅ์ ์ธ๋ฑ์ค๋ฅผ ํตํด ๊ฐ ์์์ O(1) ์๊ฐ์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค.๊ตฌํ์ด ๊ฐ๋จํ๊ณ jun-13.tistory.com 2. Linked list. [์๋ฃ๊ตฌ์กฐ] ๋งํฌ๋๋ฆฌ์คํธ (Linked list)๋งํฌ๋๋ฆฌ์คํธ (Linked list) ๋?์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ๊ฐ ๋
ธ๋..
CS
2024.03.22
ํ๋ ์์ํฌ๋ ๋ฌด์์ด๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ? ํ๋ ์ ์ํฌ ํํ ์ฌ๋๋ค์ด ๋ง์ด ์ด์ผ๊ธฐํ๋ Spring, Django, React ๊ฐ์ด ์ด๋ฏธ ์ ํด์ง ๊ตฌ์กฐ๊ฐ ์์ด์ ๊ทธ ๊ตฌ์กฐ ์์ฒด๋ฅผ ๋ฐ๊ฟ ์๋ ์๊ณ ์ ํด์ง ๊ตฌ์กฐ์ ์์ํ๋ฉฐ ๋ฐ๋ผ๊ฐ๋ ๋ฐฉ์์ ์ด์ผ๊ธฐํ๋ค. ๊ทธ๋์ ํ๋ ์์ํฌ๊ฐ ์ ๊ณตํ๋ ํ์ ๋ฐ๋ผ์ ์ฝ๋๋ฅผ ์์ฑํด์ผํ๋ค๋ณด๋ ํต์ ๊ถ์ด ์ฌ์ฉ์์๊ฒ ์์ง์๊ณ ํ๋ ์ ์ํฌ๊ฐ ๊ฐ์ง๊ณ ์๋ค๊ณ ์ด์ผ๊ธฐ ํ๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ฝ๋๋ฅผ ์์ฑํด์ ๋ง๋๋ class๊ฐ์ ๊ฒ๋ค์ ์ด์ผ๊ธฐํ๋ค๊ณ ํ๋ค. ์ํฉ์ ๋ฐ๋ผ์ ์ด๋ค ์ํฉ์ ์ด๋ ํ class๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง ๋ฑ ์ฌ์ฉ์์ ๋ง์๋๋ก ์ข์ง์ฐ์งํ ์ ์๊ธฐ ๋๋ฌธ์ ํต์ ๊ถ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๊ฒ ์์ง์๊ณ ์ฌ์ฉ์๊ฐ ๊ฐ์ง๊ณ ์๋ค๊ณ ์ด์ผ๊ธฐํ๋ค. ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด์ “์ ์ดํ๋ฆ์ ๋๊ฐ ๊ฐ์ง๊ณ ์๋๊ฐ”๋ก ..
CS
2024.03.21
์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น SOLID SRC: ๋จ์ผ ์ฑ
์ ์์น ํ ํด๋์ค๋ ํ๋์ ์ฑ
์๋ง ๊ฐ์ ธ์ผํ๋ค. ๋ณ๊ฒฝ์ด ์์ ๋ ํ๊ธ ํจ๊ณผ๊ฐ ์ ์ผ๋ฉด ๋จ์ผ ์ฑ
์ ์์น์ ์ ๋ฐ๋ฅธ ๊ฒ ( UI ๋ณ๊ฒฝ, ๊ฐ์ฒด์ ์์ฑ๊ณผ ์ฌ์ฉ์ ๋ถ๋ฆฌ ๋ฑ ) OCP: ๊ฐ๋ฐฉ-ํ์ ์์น ์ํํธ์จ์ด ์์๋ ํ์ฅ์๋ ์ด๋ ค์์ผ๋ ๋ณ๊ฒฝ์๋ ๋ซํ ์์ด์ผํ๋ค. ๋คํ์ฑ์ ํ์ฉํ๋ฉด ํ์ฅ์๋ ์ด๋ ค์์ผ๋ ๋ณ๊ฒฝ์๋ ๋ซํ์๊ฒ ํ ์ ์๋ค. ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๊ฐ๋
์ ์ด์ผ๊ธฐํ๋ค. OCP๋ฅผ ์งํค๊ธฐ์ํด์๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ์ฐ๊ด๊ด๊ณ๋ฅผ ๋งบ์ด์ฃผ๋ ๋ณ๋์ ์กฐ๋ฆฝ, ์ค์ ์๊ฐ ํ์ํ๋ค. LSP: ๋ฆฌ์ค์ฝํ ์นํ ์์น ํ๋ก๊ทธ๋จ์ ๊ฐ์ฒด๋ ํ๋ก๊ทธ๋จ์ ์ ํ์ฑ์ ๊นจ๋จ๋ฆฌ์ง ์์ผ๋ฉด์ ํ์ ํ์
์ ์ธ์คํด์ค๋ก ๋ฐ๊ฟ ์ ์์ด์ผํ๋ค. ํ์ํด๋์ค๋ ์์ ์ธํฐํ์ด์ค์ ๊ท์ฝ์ ๋ค ์ง์ผ์ผํ๋ค. ISP: ์ธ..
CS
2024.03.14
MVC ํจํด์ด๋? backend์์ ์ค๊ณ๋ฅผ ํ ๋ ๋ง์ด ์ฌ์ฉ๋๋ ๋์์ธ ํจํด์ค์ ํ๋๋ก Model, View, Controller๋ก ์ธ ๊ฐ์ง ์ญํ ๋ก ๋ถ๋ฆฌํ์ฌ ๊ด๋ฆฌํ๋ ๋์์ธ ํจํด์ด๋ผ๊ณ ํ๋ค. Model : ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ก์ง์ ๋ด๋นํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๊ฒ์ฆ๊ณผ ๊ฐ์ ์์
๋ค์ ์งํํ๋ ํํธ ์ค์ง์ ์ผ๋ก ๋ด๋ถ์์ ์ฐ์ฐ๋ฑ์ ์งํํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ๋ค๋์ง, ๋ฐ์ดํฐ๊ฐ ์ ํจํ์ง ๊ฒ์ฆํ๋ค๋์ง ๋ฑ์ ์์
์ ํ๋ Model ํํธ์์ ์์ฑ์ ํ๋ค. View : ์ฌ์ฉ์์๊ฒ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ญํ ์ ํ๋ ํํธ ์ฌ์ฉ์์๊ฒ ์ ๋ณด๋ฅผ ๋ฐํํด์ฃผ๋ ๋ก์ง๋ค์ View์์ ๋ณดํต ๊ตฌ์ฑ์ ํฉ๋๋ค. ํ์๊ฐ ์ค๊ณํ๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ค๋ค๋๊ฐ, ๋ฐ์ดํฐ๋ค์ ๋ฐ์์ ์ ์ฅํ๋ค๋๊ฐ ๋ฑ์ ๋ํ ์ฝ๋๋ฅผ View ํํธ์์ ์์ฑ์ ํ๋ค. C..
42seoul/projects
2024.03.13
Exercise 00: Easy find easyfind ๋ผ๋ ํ
ํ๋ฆฟํจ์๋ฅผ ๊ตฌํํด์ผํ๋ค. ํด๋นํจ์๋ container์ value๋ฅผ ๋ฐ๊ณ container์์ ํด๋น value๊ฐ ์กด์ฌํ๋ค๋ฉด ํด๋นํ๋ value์์น์ iterator๋ฅผ ๋ฐํํ๋ค. ๋ง์ฝ ์กด์ฌํ์ง์๋๋ค๋ฉด error ์ฒ๋ฆฌ ํ์. iterator() typename T::iterator iter; iter = std::find(container.begin(), container.end(), value); std::cout
42seoul/projects
2024.03.13
C++ templates https://jun-13.tistory.com/148 [C++] templates C++ templates ์ฝ๋์ ์ผ๋ฐํ์ ์ฌ์ฌ์ฉ์ ์ํ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ // templates function template T add(T a, T b) { return a + b; } int main() { // intํ ์ธ์๋ฅผ ๊ฐ๋ ํจ์ ํธ์ถ std::cout moaoh.dev Exercise 00: Start with a few functions what is templates?? // templates function template T add(T a, T b) { return a + b; } int main() { // intํ ์ธ์๋ฅผ ๊ฐ๋ ํจ์ ํธ์ถ std::cout
42seoul/projects
2024.03.13
C++ templates ์ฝ๋์ ์ผ๋ฐํ์ ์ฌ์ฌ์ฉ์ ์ํ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ // templates function template T add(T a, T b) { return a + b; } int main() { // intํ ์ธ์๋ฅผ ๊ฐ๋ ํจ์ ํธ์ถ std::cout