[C++] ๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming)๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ„๋‹จํ•œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„์–ด ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.๋˜‘๊ฐ™์€ ์—ฐ์‚ฐ์„ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๋„๋ก ๋งŒ๋“ค์–ด ์ฃผ๊ณ  ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.์ž‘์€ ๋ฌธ์ œ๋“ค์„ ํ’€์–ด๋‚˜๊ฐ€๋‹ค ๋ณด๋ฉด ์ด์ „์— ๊ตฌํ•ด๋‘” ๋” ์ž‘์€ ๋ฌธ์ œ๋“ค์ด ํ™œ์šฉ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ฒŒ ๋œ๋‹ค. ์ด์— ๋Œ€ํ•œ ๊ทœ์น™์„ ์ฐพ์•˜์„ ๋•Œ ์ ํ™”์‹์„ ๋„์ถœํ•ด ๋‚ด์–ด ๋™์  ๊ณ„ํš๋ฒ•์— ์ ์šฉํ•œ๋‹ค. ํ’€์ด๋ฒ•dp[i]๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๋ฐ”dp[i]๋ฅผ initialize ํ•˜๋Š” ๋ฐฉ๋ฒ•dp[i]์˜ ์ ํ™”์‹dp[i]๋ฅผ ์ฑ„์šฐ๋Š” ์ˆœ์„œ์ •๋‹ต์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ” https://jyeonth.tistory.com/7 Leetcode: Word BreakWord Break I Given a non-empty string s and a dictionary wordDict containing a li..
[C++] ๋ฑ(Deque)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
๋ฑ(Deque) ํ์˜ ๋ณ€ํ˜•ํŒ์œผ๋กœ ์•ž, ๋’ค ์–‘์ชฝ์—์„œ ๋ชจ๋‘ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฌธ์ œ https://www.acmicpc.net/problem/5430 5430๋ฒˆ: AC ๋ฌธ์ œ ์„ ์˜์ด๋Š” ์ฃผ๋ง์— ํ•  ์ผ์ด ์—†์–ด์„œ ์ƒˆ๋กœ์šด ์–ธ์–ด AC๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. AC๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด์— ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ์–ธ์–ด์ด๋‹ค. ์ด ์–ธ์–ด์—๋Š” ๋‘ ๊ฐ€์ง€ ํ•จ์ˆ˜ R(๋’ค์ง‘๊ธฐ)๊ณผ D(๋ฒ„๋ฆฌ๊ธฐ)๊ฐ€ ์žˆ๋‹ค. ํ•จ์ˆ˜ R์€ ๋ฐฐ์—ด์— ์žˆ๋Š” ์ˆซ์ž์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๋Š” ํ•จ์ˆ˜์ด๊ณ , D๋Š” ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋ฅผ ๋ฒ„๋ฆฌ๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ๋Š”๋ฐ D๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ์—๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ํ•จ์ˆ˜๋Š” ์กฐํ•ฉํ•ด์„œ ํ•œ ๋ฒˆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "AB"๋Š” A๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ์— ๋ฐ”๋กœ ์ด์–ด์„œ B๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. www.acmicpc.net #include #include #include usi..
[C++] ํ(Queue), ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
ํ(Queue) ๋ฌธ์ œ https://www.acmicpc.net/problem/1966 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ ๋ฌธ์ œ ์—ฌ๋Ÿฌ๋ถ„๋„ ์•Œ๋‹ค์‹œํ”ผ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋ฆฐํ„ฐ ๊ธฐ๊ธฐ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ธ์‡„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์ธ์‡„ ๋ช…๋ น์„ ๋ฐ›์€ ‘์ˆœ์„œ๋Œ€๋กœ’, ์ฆ‰ ๋จผ์ € ์š”์ฒญ๋œ ๊ฒƒ์„ ๋จผ์ € ์ธ์‡„ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ์Œ“์ธ๋‹ค๋ฉด Queue ์ž๋ฃŒ๏ฟฝ๏ฟฝ www.acmicpc.net #include #include #include #include using namespace std; int main() { int t; cin >> t; while (t--) { int n, m; cin >> n >> m; queue q; vector v(n); for (int i = 0; i > v[i]; if (i == m) q.push(m..
[C++] ์Šคํƒ(Stack)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
์Šคํƒ(Stack) ๋ฌธ์ œ https://www.acmicpc.net/problem/4949 4949๋ฒˆ: ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ๋ฌธ์ œ ์„ธ๊ณ„๋Š” ๊ท ํ˜•์ด ์ž˜ ์žกํ˜€์žˆ์–ด์•ผ ํ•œ๋‹ค. ์–‘๊ณผ ์Œ, ๋น›๊ณผ ์–ด๋‘  ๊ทธ๋ฆฌ๊ณ  ์™ผ์ชฝ ๊ด„ํ˜ธ์™€ ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ์ฒ˜๋Ÿผ ๋ง์ด๋‹ค. ์ •๋ฏผ์ด์˜ ์ž„๋ฌด๋Š” ์–ด๋–ค ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ด„ํ˜ธ๋“ค์˜ ๊ท ํ˜•์ด ์ž˜ ๋งž์ถฐ์ ธ ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์งœ๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌธ์ž์—ด์— ํฌํ•จ๋˜๋Š” ๊ด„ํ˜ธ๋Š” ์†Œ๊ด„ํ˜ธ("()") ์™€ ๋Œ€๊ด„ํ˜ธ("[]")๋กœ 2์ข…๋ฅ˜์ด๊ณ , ๋ฌธ์ž์—ด์ด ๊ท ํ˜•์„ ์ด๋ฃจ๋Š” ์กฐ๊ฑด์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋ชจ๋“  ์™ผ์ชฝ ์†Œ๊ด„ํ˜ธ("(")๋Š” ์˜ค๋ฅธ์ชฝ ์†Œ๊ด„ํ˜ธ(")")์™€๋งŒ ์ง์„ ์ด๋ค„์•ผ ํ•œ๋‹ค. ๋ชจ๋“  ์™ผ์ชฝ ๋Œ€๊ด„ํ˜ธ("[")๋Š” ์˜ค๋ฅธ์ชฝ ๋Œ€๊ด„www.acmicpc.net#include #include #include using namespace std;int main(void){ ..
HTTP
ยท
๐Ÿ“ Computer Science/โœ Network & Web
1. HTTP(HyperText Transfer Protocol) 1) ๊ฐœ๋… ์›น ์ƒ์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์š”์ฒญ/์‘๋‹ต์œผ๋กœ ์ž์›์„ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ์“ฐ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ์ธ ์›น๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„๋Š” ์ฃผ๋กœ ์›น ํŽ˜์ด์ง€(HTML)์ธ ํ…์ŠคํŠธ ๊ตํ™˜์„ ํ•˜๋Š”๋ฐ, ๋ˆ„๊ตฐ๊ฐ€ ๋„คํŠธ์›Œํฌ์—์„œ ์‹ ํ˜ธ๋ฅผ ์ค‘๊ฐ„์— ๊ฐ€๋กœ์ฑˆ๋‹ค๋ฉด ๋‚ด์šฉ์ด ๋…ธ์ถœ๋˜๋Š” ๋ณด์•ˆ ์ด์Šˆ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํ‰๋ฌธ ํ†ต์‹ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋„์ฒญ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ†ต์‹  ์ƒ๋Œ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์œ„์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์™„์ „์„ฑ์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. 80๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 2) ํŠน์ง• ๋น„์—ฐ๊ฒฐํ˜•(Connectionless): ํ•˜๋‚˜์˜ ์„ธ์…˜ ์•ˆ์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ Request์™€ Response์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์„ธ์…˜์ด ๋Š์–ด์ง„๋‹ค. ๋ฌด์ƒํƒœ์„ฑ(Stateless): ์—ฐ๊ฒฐ์„ ๋Š๋Š” ์ˆœ๊ฐ„ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ..
TCP/IP์™€ TCP/UDP
ยท
๐Ÿ“ Computer Science/โœ Network & Web
1. ์ธํ„ฐ๋„ท ๊ตฌ์„ฑ ์š”์†Œ ํ˜ธ์ŠคํŠธ: ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๋Š” ์ปดํ“จํ„ฐ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฃผ์ฒด์ด๋‹ค. ๋ผ์šฐํ„ฐ: ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฐ€์žฅ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์†ํ•œ ํ˜ธ์ŠคํŠธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์žฅ์น˜์ด๋‹ค. ํ†ต์‹  ํ”„๋กœํ† ์ฝœ: ํ˜ธ์ŠคํŠธ-ํ˜ธ์ŠคํŠธ, ํ˜ธ์ŠคํŠธ-๋ผ์šฐํ„ฐ, ๋ผ์šฐํ„ฐ-๋ผ์šฐํ„ฐ ์‚ฌ์ด์˜ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ์ •ํ•ด์ง„ ์ ˆ์ฐจ์™€ ๋ฐฉ๋ฒ•์ด๋‹ค. 2. TCP/IP ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ์ข…์˜ ์ปดํ“จํ„ฐ๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ๋กœ TCP์™€ IP๋ฅผ ๋น„๋กฏํ•œ ๊ฐ์ข… ํ”„๋กœํ† ์ฝœ์„ ์ด์นญํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ชจ๋ธ: ์‚ฌ์šฉ์ž์ธ ํด๋ผ์ด์–ธํŠธ์˜ ์š”๊ตฌ์— ๋Œ€์‘ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์ƒ์˜ ์„œ๋ฒ„๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค. ์ ๋Œ€์  ํ†ต์‹ : ๊ฐ ํ†ต์‹ ์ด ๋„คํŠธ์›Œํฌ ์ƒ์˜ ํ•œ ์ (ํ˜ธ์ŠคํŠธ)์œผ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋‹ค๋ฅธ ์ (ํ˜ธ์ŠคํŠธ)์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค. 1) ..