๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

CS

[์ž๋ฃŒ๊ตฌ์กฐ] ์Šคํƒ (Stack)

์Šคํƒ (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

[์ž๋ฃŒ๊ตฌ์กฐ] ๋ฐฐ์—ด (Array)

๋ฐฐ์—ด (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

[์ž๋ฃŒ๊ตฌ์กฐ] ์ž๋ฃŒ๊ตฌ์กฐ (data structure)

์ž๋ฃŒ๊ตฌ์กฐ๋ž€? ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์กฐ์งํ•˜๊ณ  ์ €์žฅํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ ๋“ฑ์˜ ์ž‘์—…์ด ๋” ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํŠน์ • ์ƒํ™ฉ์—์„œ ๋” ํšจ์œจ์ ์ธ ์„ฑ๋Šฅ์„ ๋ณด์ด๋ฉฐ, ๊ฐœ๋ฐœ์ž๋Š” ๋ฌธ์ œ์— ๋งž๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์„ ํƒํ•ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ตฌํ˜„ ๋ฐ ์„ธ๋ถ€๋‚ด์šฉ 1. Array. [์ž๋ฃŒ๊ตฌ์กฐ] ๋ฐฐ์—ด (Array)๋ฐฐ์—ด์ด๋ž€?๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ๋ฅผ ์ด์•ผ๊ธฐํ•œ๋‹ค.๋™์ผํ•œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ์ €์žฅํ•œ๋‹ค.์žฅ๋‹จ์ ์žฅ์ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ๊ฐ ์š”์†Œ์— O(1) ์‹œ๊ฐ„์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๊ณ jun-13.tistory.com 2. Linked list. [์ž๋ฃŒ๊ตฌ์กฐ] ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ (Linked list)๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ (Linked list) ๋ž€?์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋Š” ๊ฐ ๋…ธ๋“œ..

CS

ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

ํ”„๋ ˆ์ž„์›Œํฌ๋ž€ ๋ฌด์—‡์ด๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ํ”„๋ ˆ์ž„ ์›Œํฌ ํ”ํžˆ ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ์ด์•ผ๊ธฐํ•˜๋Š” Spring, Django, React ๊ฐ™์ด ์ด๋ฏธ ์ •ํ•ด์ง„ ๊ตฌ์กฐ๊ฐ€ ์žˆ์–ด์„œ ๊ทธ ๊ตฌ์กฐ ์ž์ฒด๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜๋Š” ์—†๊ณ  ์ •ํ•ด์ง„ ๊ตฌ์กฐ์— ์ˆœ์‘ํ•˜๋ฉฐ ๋”ฐ๋ผ๊ฐ€๋Š” ๋ฐฉ์‹์„ ์ด์•ผ๊ธฐํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํ‹€์— ๋”ฐ๋ผ์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•˜๋‹ค๋ณด๋‹ˆ ํ†ต์ œ๊ถŒ์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์žˆ์ง€์•Š๊ณ  ํ”„๋ ˆ์ž„ ์›Œํฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ด์•ผ๊ธฐ ํ•œ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์„œ ๋งŒ๋“œ๋Š” class๊ฐ™์€ ๊ฒƒ๋“ค์„ ์ด์•ผ๊ธฐํ•œ๋‹ค๊ณ ํ•œ๋‹ค. ์ƒํ™ฉ์— ๋”ฐ๋ผ์„œ ์–ด๋–ค ์ƒํ™ฉ์— ์–ด๋– ํ•œ class๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ๋“ฑ ์‚ฌ์šฉ์ž์˜ ๋งˆ์Œ๋Œ€๋กœ ์ขŒ์ง€์šฐ์ง€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ†ต์ œ๊ถŒ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๊ฒŒ ์žˆ์ง€์•Š๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ด์•ผ๊ธฐํ•œ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฐจ์ด์  “์ œ์–ดํ๋ฆ„์„ ๋ˆ„๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฐ€”๋กœ ..

CS

[Java] SOLID

์ข‹์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์˜ 5๊ฐ€์ง€ ์›์น™ SOLID SRC: ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ ํ•œ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผํ•œ๋‹ค. ๋ณ€๊ฒฝ์ด ์žˆ์„ ๋•Œ ํŒŒ๊ธ‰ ํšจ๊ณผ๊ฐ€ ์ ์œผ๋ฉด ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์„ ์ž˜ ๋”ฐ๋ฅธ ๊ฒƒ ( UI ๋ณ€๊ฒฝ, ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์‚ฌ์šฉ์„ ๋ถ„๋ฆฌ ๋“ฑ ) OCP: ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™ ์†Œํ”„ํŠธ์›จ์–ด ์š”์†Œ๋Š” ํ™•์žฅ์—๋Š” ์—ด๋ ค์žˆ์œผ๋‚˜ ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผํ•œ๋‹ค. ๋‹คํ˜•์„ฑ์„ ํ™œ์šฉํ•˜๋ฉด ํ™•์žฅ์—๋Š” ์—ด๋ ค์žˆ์œผ๋‚˜ ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€์žˆ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์— ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ๊ฐœ๋…์„ ์ด์•ผ๊ธฐํ•œ๋‹ค. OCP๋ฅผ ์ง€ํ‚ค๊ธฐ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ๋งบ์–ด์ฃผ๋Š” ๋ณ„๋„์˜ ์กฐ๋ฆฝ, ์„ค์ •์ž๊ฐ€ ํ•„์š”ํ•˜๋‹ค. LSP: ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ์ฒด๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ •ํ™•์„ฑ์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š์œผ๋ฉด์„œ ํ•˜์œ„ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค. ํ•˜์œ„ํด๋ž˜์Šค๋Š” ์ƒ์œ„ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ทœ์•ฝ์„ ๋‹ค ์ง€์ผœ์•ผํ•œ๋‹ค. ISP: ์ธ..

CS

[java] MVC

MVC ํŒจํ„ด์ด๋ž€? backend์—์„œ ์„ค๊ณ„๋ฅผ ํ• ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ค‘์— ํ•˜๋‚˜๋กœ Model, View, Controller๋กœ ์„ธ ๊ฐ€์ง€ ์—ญํ• ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ด๋ผ๊ณ ํ•œ๋‹ค. Model : ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ๋‹ด๋‹นํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ๊ฒ€์ฆ๊ณผ ๊ฐ™์€ ์ž‘์—…๋“ค์„ ์ง„ํ–‰ํ•˜๋Š” ํŒŒํŠธ ์‹ค์งˆ์ ์œผ๋กœ ๋‚ด๋ถ€์—์„œ ์—ฐ์‚ฐ๋“ฑ์„ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค๋˜์ง€, ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒ€์ฆํ•œ๋‹ค๋˜์ง€ ๋“ฑ์˜ ์ž‘์—…์„ ํ•˜๋Š” Model ํŒŒํŠธ์—์„œ ์ž‘์„ฑ์„ ํ•œ๋‹ค. View : ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ํŒŒํŠธ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ๋กœ์ง๋“ค์„ View์—์„œ ๋ณดํ†ต ๊ตฌ์„ฑ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ•„์ž๊ฐ€ ์„ค๊ณ„ํ•œ๋Œ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค๋˜๊ฐ€, ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฐ›์•„์„œ ์ €์žฅํ•œ๋‹ค๋˜๊ฐ€ ๋“ฑ์˜ ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ View ํŒŒํŠธ์—์„œ ์ž‘์„ฑ์„ ํ•œ๋‹ค. C..

42seoul/projects

[CPP Module] 08

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

[CPP Module] 07

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

[C++] templates

C++ templates ์ฝ”๋“œ์˜ ์ผ๋ฐ˜ํ™”์™€ ์žฌ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ // templates function template T add(T a, T b) { return a + b; } int main() { // intํ˜• ์ธ์ˆ˜๋ฅผ ๊ฐ–๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ std::cout

moaoh
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)