๋ชฉ๋ก์ ์ฒด ๊ธ (1005)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
=> ๋น ์ค(Big-O)ํ๊ธฐ๋ฒ ์ฝ๊ฒ ์ดํดํ๊ธฐ [10๋ถ ์ ๋ฆฌ] ๐ซง ์ฐ๊ฒฐ๋ฆฌ์คํธ (Linked List) : ์ฐ์๋ ๋ ธ๋(Node) ์ ์ฐ๊ฒฐ์ฒด ๐พ ๋ ธ๋(Node) : ์ฐ๊ฒฐ ๋ฆฌ์คํธ์์ ์ฌ์ฉ๋๋ ํ๋์ ๋ฐ์ดํฐ ๋ฉ์ด๋ฆฌ : ๋ฐ์ดํฐ & ๋งํฌ, 2๊ฐ์ง์ ํ๋๋ฅผ ๋ด๊ณ ์๋ ๊ตฌ์กฐ ๐พ data : ๋ ธ๋๊ฐ ๋ด๊ณ ์๋ ๋ฐ์ดํฐ/๊ฐ ๐พ next : ๋งํฌ/ํฌ์ธํฐ ์ญํ , ๋ค์ ๋ ธ๋์ ์ฃผ์๋ฅผ ์ ์ฅ (์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ, prev ํฌ์ธํฐ (์ด์ ๋ ธ๋์ ์ฃผ์) ์ถ๊ฐ) ๐ซง ์ฐ๊ฒฐ๋ฆฌ์คํธ (Linked List) vs ๋ฐฐ์ด ์ฐ๊ฒฐ๋ฆฌ์คํธ (Linked List) ๋ฐฐ์ด random access ๋ถ๊ฐ๋ฅ random access ๊ฐ๋ฅ ๋ฆฌ์คํธ์ n๋ฒ์งธ ๋ ธ๋ ๋ฐฉ๋ฌธ์ O(n) ์๊ฐ ์์ ๋ฐฐ์ด์ n๋ฒ์งธ ์์ ๋ฐฉ๋ฌธ์ O(1) ์๊ฐ์ผ๋ก ๊ฐ๋ฅ ๋ฐฐ์ด๋ณด๋ค ๋นจ๋ผ์ง ์ ์๋ ๋ ธ..
=> ๋น ์ค(Big-O)ํ๊ธฐ๋ฒ ์ฝ๊ฒ ์ดํดํ๊ธฐ [10๋ถ ์ ๋ฆฌ] ๐ซง ๋น ์ค(Big-O)ํ๊ธฐ๋ฒ : ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ๋ํ๋ด๋ ํ๊ธฐ๋ฒ : ์๊ฐ / ๊ณต๊ฐ ๋ณต์ก๋ ์์ธก์ ์ฌ์ฉ : N ๊ฐ์ ์ฆ๊ฐ์ ๋ค๋ฅธ ์ฒ๋ฆฌ ์๊ฐ ๋๋ ๊ณต๊ฐ ๊ณ์ฐ : ์์์ ๊ณ์ ์ ๊ฑฐํ์ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ณต์ก๋๋ฅผ ๋จ์ํ : ์ธํ์ ์ฆ๊ฐ์ ๋ฐ๋ฅธ ์ฐ์ฐ ์ฒ๋ฆฌ์๊ฐ์ ์ฆ๊ฐ์จ ๐ซง ์ฃผ์ ์๊ฐ๋ณต์ก๋ O(1) - Constant Time : ์ธํ์ ํฌ๊ธฐ์ ์๊ด์์ด ํญ์ ์ผ์ ํ ์๊ฐ ์์ O(log n) - Logarithmic : ๋ก๊ทธ์๊ฐ, O(1) ๋ค์์ผ๋ก ๋น ๋ฅธ ์๊ฐ ๋ณต์ก๋ O(n) - Linear Time : ์ ํ ์๊ฐ, ์ธํ์ ์ฆ๊ฐ ์ ๊ฐ์ ๋น์จ๋ก ์ฆ๊ฐ O(N^2) - Quadratic : 2์ฐจ ์๊ฐ, ์ธํ์ ์ฆ๊ฐ ์ n์ ์ ๊ณฑ ๋น์จ๋ก ์ฆ๊ฐ O(n!) - Factoria..
=> [์๋ฃ๊ตฌ์กฐ / ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ 1ํ - ๋งํฌ๋ ๋ฆฌ์คํธ(linked list) ๊ตฌํ (1/2 ) ๐ซง Linked List ๋ฐฐ์ด๊ณผ ๋น์ทํ๊ฒ ์ ํ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์๋ฃ๊ตฌ์กฐ ๊ฐ ๋ ธ๋๋ ๋ค์ ๋ ธ๋์ ์ฃผ์๊ฐ์ ์ ์ฅํ๊ณ ์์ผ๋ฏ๋ก ๋ค์ ๋ ธ๋์ ๊ฐ์ ์ ๊ทผํ ์ ์๋ค ๊ฐ ๋ ธ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ณ์์ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๊ฐ๋ฅดํค๋ ํฌ์ธํฐ๋ณ์๋ก ๊ตฌ์ฑ๋์ด ์๋ค ๋ฐฐ์ด์ ์ฌ์ด์ฆ๋ ๊ณ ์ ๋์ด ์๊ณ ๋ฐฐ์ด์ ์ ์ธํ ๋ ๋ฐฐ์ด์ ์ฌ์ด์ฆ๋ฅผ ํญ์ ์์์ผ ํ๋ค ๋จ๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์ฒซ๋ฒ์งธ ๋ ธ๋๋ head๋ผ๊ณ ๋ถ๋ฆฐ๋ค head๋ ธ๋๋ ๋ฆฌ์คํธ๊ฐ ๋น์ด์์ด๋ ํญ์ ์กด์ฌํ๋ค head๋ก ์ ํด์ง ๋ ธ๋๋ data๋ณ์์ ์๋ฌด๊ฒ๋ ์ ์ฅํ์ง ์๋๋ค ๐ซง ์ ๋ค๋ก ์ถ๊ฐํ๊ธฐ & ์ญ์ ํ๊ธฐ ๐พ main.cpp #include #include "CLinkedList.h" using n..
=> [๋ฐ๋ฐฐ์จ++] ๋ฐ๋ผํ๋ฉฐ ๋ฐฐ์ฐ๋ C++ | ๋ชจ๋ c++, c++ ๊ฐ์, c++ ๊ฐ์ข, c++ ์ธ์ด, ๊ธฐ์ด & c++ ํ๋ก๊ทธ๋๋ฐ, ์ฝ๋ฉ ๐ซง ์ฐ์ฐ์ operand : ํผ์ฐ์ฐ์ (x, 2) assignment : ๋์ ์ฐ์ฐ์ (=) #include using namespace std; int main() { int x = 2;// x is a variable, 2 is a literal cout
=> [๋ฐ๋ฐฐ์จ++] ๋ฐ๋ผํ๋ฉฐ ๋ฐฐ์ฐ๋ C++ | ๋ชจ๋ c++, c++ ๊ฐ์, c++ ๊ฐ์ข, c++ ์ธ์ด, ๊ธฐ์ด & c++ ํ๋ก๊ทธ๋๋ฐ, ์ฝ๋ฉ ๐ซง ์ ์ถ๋ ฅ ์คํธ๋ฆผ๊ณผ์ ์ฒซ ๋ง๋จ cin, cout #include // cout, cin, endl #include // printf int main() { using namespace std; // ์ ๋ ฅ int x; cin >> x; // ์ถ๋ ฅ cout
=> [๋ฐ๋ฐฐ์จ++] ๋ฐ๋ผํ๋ฉฐ ๋ฐฐ์ฐ๋ C++ | ๋ชจ๋ c++, c++ ๊ฐ์, c++ ๊ฐ์ข, c++ ์ธ์ด, ๊ธฐ์ด & c++ ํ๋ก๊ทธ๋๋ฐ, ์ฝ๋ฉ ๐ซง Debug vs Release ์ฐจ์ด์ Debug ๋ชจ๋๋ ๋๋ฒ๊น ์ ์ ํฉํ ๋น๋ Release ๋ชจ๋๋ ๋ฐฐํฌ๋ฅผ ์ ํฉํ ๋น๋ Debug ๋น๋๋ ์ฝ๋ ์คํ ์๋๊ฐ ๋๋ฆฌ์ง๋ง, ๋๋ฒ๊น ์ด ์ฉ์ดํ๊ณ ์ปดํ์ผ ์๋๋ ๋น ๋ฅด๋ฏ๋ก ํ์ฐฝ ๊ฐ๋ฐ์ด ์งํ์ค์ธ ํ๋ก์ ํธ์์ ๊ฐ๋ฐ์๊ฐ ๋๋ฒ๊น ์ ํ ๋ ์ฌ์ฉ Release ๋น๋๋ ์ฝ๋ ์คํ ์๋๊ฐ ๋น ๋ฅด๊ณ ๋ฐฐํฌํ๊ธฐ๋ ์ฉ์ดํ๋ฏ๋ก ๊ฐ๋ฐ์ด ์๋ฃ๋๊ณ ์ค์ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ ๋ ์ฌ์ฉ Debug Release ์ฝ๋ ์ต์ ํ ํ์ง ์์ ๋ฐ์ด๋๋ฆฌ(์คํ ํ์ผ) ํฌ๊ธฐ๊ฐ ํฌ๋ค ์ฝ๋ ์คํ ์๋๊ฐ ๋๋ฆผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋ง์ ๋ฐ์ด๋๋ฆฌ์ ๋๋ฒ๊น ์ ํ์ํ ์ ๋ณด๊ฐ ํฌํจ๋จ ์ปดํ์ผ ์๋ ๋น ๋ฆ ..
=> [๋ฐ๋ฐฐ์จ++] ๋ฐ๋ผํ๋ฉฐ ๋ฐฐ์ฐ๋ C++ | ๋ชจ๋ c++, c++ ๊ฐ์, c++ ๊ฐ์ข, c++ ์ธ์ด, ๊ธฐ์ด & c++ ํ๋ก๊ทธ๋๋ฐ, ์ฝ๋ฉ ๐ซง C++ ์คํํ์ผ ๊ตฌ์กฐ 1. ์์ค ํ์ผ(source file)์ ์์ฑ : ์์ฑ๋ ํ๋ก๊ทธ๋จ์ ์์ ํ์ผ ๋๋ ์์ค ํ์ผ (c++) 2. ์ ํ์ฒ๋ฆฌ๊ธฐ(preprocessor)์ ์ํ ์ ํ์ฒ๋ฆฌ : ์ ํ์ฒ๋ฆฌ ๋ฌธ์(#)๋ก ์์ํ๋ ์ ํ์ฒ๋ฆฌ ์ง์๋ฌธ์ ์ฒ๋ฆฌ ์์ : ์ปดํ์ผํ๊ธฐ ์ ์ปดํ์ผ๋ฌ๊ฐ ์์ ํ๊ธฐ ์ข๋๋ก ์์ค๋ฅผ ์ฌ๊ตฌ์ฑ 3. ์ปดํ์ผ๋ฌ(compiler)์ ์ํ ์ปดํ์ผ : ์์ค ํ์ผ์ ์ปดํจํฐ๊ฐ ์์๋ณผ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ณํ : ์ปดํ์ผ์ด ๋๋ ๊ธฐ๊ณ์ด๋ก ๋ณํ๋ ํ์ผ์ ์ค๋ธ์ ํธ ํ์ผ(object file) 4. ๋ง์ปค(linker)์ ์ํ ๋งํฌ : ํ๋ ์ด์์ ์ค๋ธ์ ํธ ํ์ผ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ..
=> Node.js, Express ๋ฐ MongoDB๋ฅผ ์ฌ์ฉํ์ฌ Markdown ๋ธ๋ก๊ทธ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ ๐ฅ๏ธ Create Index Route const express = require("express"); const app = express(); app.set("view engine", "ejs"); app.get("/", (req, res) => { res.render("index"); }); app.listen(3000); โก๏ธ Article index โก๏ธ New Article ๐ฅ๏ธ ํ์ ํจํค์ง ์ค์น npm install marked slugify โก๏ธ marked : ๋งํฌ๋ค์ด์ HTML๋ก ๋ณํํ๋ ํจํค์ง โก๏ธ slugify ์ฌ๋์ด ์ฝ์ ์ ์๋ ๊ณ ์ ์๋ณ์๋ก, ID์ ๊ฐ์ด ์ฌ๋์ด ์ฝ๊ธฐ ์ด๋ ค์ด ์..