TCP/IP์™€ TCP/UDP
ยท
๐Ÿ“ Computer Science/โœ Network & Web
1. ์ธํ„ฐ๋„ท ๊ตฌ์„ฑ ์š”์†Œ ํ˜ธ์ŠคํŠธ: ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๋Š” ์ปดํ“จํ„ฐ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฃผ์ฒด์ด๋‹ค. ๋ผ์šฐํ„ฐ: ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฐ€์žฅ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์†ํ•œ ํ˜ธ์ŠคํŠธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์žฅ์น˜์ด๋‹ค. ํ†ต์‹  ํ”„๋กœํ† ์ฝœ: ํ˜ธ์ŠคํŠธ-ํ˜ธ์ŠคํŠธ, ํ˜ธ์ŠคํŠธ-๋ผ์šฐํ„ฐ, ๋ผ์šฐํ„ฐ-๋ผ์šฐํ„ฐ ์‚ฌ์ด์˜ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ์ •ํ•ด์ง„ ์ ˆ์ฐจ์™€ ๋ฐฉ๋ฒ•์ด๋‹ค. 2. TCP/IP ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ์ข…์˜ ์ปดํ“จํ„ฐ๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ๋กœ TCP์™€ IP๋ฅผ ๋น„๋กฏํ•œ ๊ฐ์ข… ํ”„๋กœํ† ์ฝœ์„ ์ด์นญํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ชจ๋ธ: ์‚ฌ์šฉ์ž์ธ ํด๋ผ์ด์–ธํŠธ์˜ ์š”๊ตฌ์— ๋Œ€์‘ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์ƒ์˜ ์„œ๋ฒ„๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค. ์ ๋Œ€์  ํ†ต์‹ : ๊ฐ ํ†ต์‹ ์ด ๋„คํŠธ์›Œํฌ ์ƒ์˜ ํ•œ ์ (ํ˜ธ์ŠคํŠธ)์œผ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋‹ค๋ฅธ ์ (ํ˜ธ์ŠคํŠธ)์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค. 1) ..
[C] ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(BST)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(BST) ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ 2๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ์ด์ง„ ํŠธ๋ฆฌ์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„๋œ๋‹ค. ๊ธฐ๋ณธ ์›๋ฆฌ ๋ชจ๋“  ๋…ธ๋“œ์˜ ๊ฐ’์€ ์œ ์ผํ•˜๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์— ์žˆ๋Š” ๊ฐ’๋“ค์€ ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ์ž‘๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๊ฐ’๋“ค์€ ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค. ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋„ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์ด๋‹ค. ๋ฌธ์ œ #include using namespace std; typedef struct node_struct { int data; struct node_struct* left; struct node_struct* right; }node; node* insert_node(node* root, int value) { if (root == NULL) { root..
[C++] binary_search, lower_bound, upper_bound
ยท
๐Ÿ“ Computer Science/โœ Algorithm
binary_search, lower_bound, upper_bound ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ฐฐ์—ด, ์ปจํ…Œ์ด๋„ˆ ๋“ฑ์„ ๋Œ€์ƒ์œผ๋กœ ํƒ์ƒ‰ํ•œ๋‹ค. binary_search: ํƒ์ƒ‰ ๋Œ€์ƒ์ด ๋˜๋Š” ๊ฐ’์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋“ค์–ด ์žˆ๋‹ค๋ฉด true, ์—†๋‹ค๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. lower_bound: ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’ ์ด์ƒ์ด ์ฒ˜์Œ ๋‚˜ํƒ€๋‚˜๋Š” ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. upper_bound: ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฐ’์ด ์ฒ˜์Œ ๋‚˜ํƒ€๋‚˜๋Š” ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ฌธ์ œ https://www.acmicpc.net/problem/12015 12015๋ฒˆ: ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด 2 ์ฒซ์งธ ์ค„์— ์ˆ˜์—ด A์˜ ํฌ๊ธฐ N (1 ≤ N ≤ 1,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ˆ˜์—ด A๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๋Š” Ai๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Ai ≤ 1,000,000) www..
[C++] ์ด๋ถ„ ํƒ์ƒ‰(Binary Search)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
์ด๋ถ„ ํƒ์ƒ‰(Binary Search) ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ์„ ๋•Œ ํŠน์ •ํ•œ ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋ฌธ์ œ https://www.acmicpc.net/problem/1920 1920๋ฒˆ: ์ˆ˜ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1≤N≤100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M(1≤M≤100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M๊ฐœ์˜ ์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด ์ˆ˜๋“ค์ด A์•ˆ์— ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋ฉด ๋œ๋‹ค. ๋ชจ๋“  ์ •์ˆ˜์˜ ๋ฒ”์œ„๋Š” -231 ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ  231๋ณด๋‹ค ์ž‘๋‹ค. www.acmicpc.net #include #include using namespace std; int main() { int N, M; int a[100000]; cin >> N..
[C++] ๋ถ„ํ•  ์ •๋ณต(Divide and Conquer)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
๋ถ„ํ•  ์ •๋ณต(Divide and Conquer)๋ง ๊ทธ๋ž˜๋„ ๋ฌธ์ œ๋ฅผ ๋ถ„ํ• ๊ณผ ์ •๋ณต์œผ๋กœ ๋‚˜๋ˆ ์„œ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.๋ถ„ํ•  ๋‹จ๊ณ„์—์„œ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ถ€๋ถ„ ๋ฌธ์ œ๋“ค๋กœ ๋‚˜๋ˆ„๋Š”๋ฐ, ๋ฌธ์ œ๊ฐ€ ์ž‘์•„์งˆ์ˆ˜๋ก ํ’€๊ธฐ ์‰ฌ์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๋Œ€์ฒด๋กœ ๋ถ„ํ•  ์ •๋ณต์€ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฌธ์ œ https://www.acmicpc.net/problem/1992 1992๋ฒˆ: ์ฟผ๋“œํŠธ๋ฆฌ์ฒซ์งธ ์ค„์—๋Š” ์˜์ƒ์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž N ์ด ์ฃผ์–ด์ง„๋‹ค. N ์€ ์–ธ์ œ๋‚˜ 2์˜ ์ œ๊ณฑ์ˆ˜๋กœ ์ฃผ์–ด์ง€๋ฉฐ, 1≤N ≤64์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ๋Š” ๊ธธ์ด N ์˜ ๋ฌธ์ž์—ด์ด N ๊ฐœ ๋“ค์–ด์˜จ๋‹ค. ๊ฐ ๋ฌธ์ž์—ด์€ 0 ๋˜๋Š” 1์˜ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ์˜์ƒ์˜ ๊ฐ ์ ๋“ค์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.www.acmicpc.net#include #include using namespace std;i..
[C++] ๊ทธ๋ฆฌ๋””(Greedy)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
๊ทธ๋ฆฌ๋””(Greedy)๊ฐ ๋‹จ๊ณ„์—์„œ ์ตœ์„ ์˜ ์„ ํƒ์„ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํƒ์š•์  ๊ธฐ๋ฒ•์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.Greedy Choice Property (ํƒ์š• ์„ ํƒ ์†์„ฑ)๊ตญ์†Œ ์ตœ์  ์„ ํƒ์ด ์ „์ฒด ์ตœ์  ํ•ด๋กœ ์ด์–ด์ง„๋‹ค.ํ˜„์žฌ ๋‹จ๊ณ„์—์„œ ๊ฐ€์žฅ ์ข‹์•„ ๋ณด์ด๋Š” ์„ ํƒ์ด ์ดํ›„์—๋„ ์ „์ฒด์ ์œผ๋กœ ์ตœ์ ์ธ ๊ฒฐ๊ณผ๋กœ ์ด์–ด์ง„๋‹ค๋Š” ์†์„ฑ์ด๋‹ค.Optimal Substructure (์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ)๋ฌธ์ œ๋ฅผ ๋” ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๊ณ , ๊ทธ ์ž‘์€ ๋ฌธ์ œ์˜ ์ตœ์ ํ•ด๋“ค์„ ์กฐํ•ฉํ•ด์„œ ์ „์ฒด ์ตœ์ ํ•ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.Exchange Argument (๊ตํ™˜ ๋…ผ๋ฒ•)์ž„์˜์˜ ์ตœ์ ํ•ด๋ฅผ ๊ทธ๋ฆฌ๋”” ํ•ด์™€ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด, ์ด๋ฅผ ์ ์ง„์ ์œผ๋กœ ๋ฐ”๊ฟ”์„œ ๊ทธ๋ฆฌ๋”” ํ•ด์ฒ˜๋Ÿผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค. ๋ฌธ์ œ https://www.acmicpc.net/problem/1931 1931๋ฒˆ: ..