๐Ÿ“ Computer Science

    [C] ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(BST)

    [C] ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(BST)

    ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(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

    [C++] binary_search, lower_bound, upper_bound

    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)

    [C++] ์ด๋ถ„ ํƒ์ƒ‰(Binary Search)

    ์ด๋ถ„ ํƒ์ƒ‰(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)

    ๋ถ„ํ•  ์ •๋ณต(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..

    [C++] ๊ทธ๋ฆฌ๋””(Greedy)

    ๊ทธ๋ฆฌ๋””(Greedy) ๊ฐ ๋‹จ๊ณ„์—์„œ ์ตœ์„ ์˜ ์„ ํƒ์„ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํƒ์š•์  ๊ธฐ๋ฒ•์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. ์ฆ‰, ๋ง ๊ทธ๋Œ€๋กœ ๋ˆˆ์•ž์˜ ๊ฐ€์žฅ ํฐ ์ด์ต๋งŒ ์ข‡๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ๋ฌธ์ œ https://www.acmicpc.net/problem/1931 1931๋ฒˆ: ํšŒ์˜์‹ค๋ฐฐ์ • (1,4), (5,7), (8,11), (12,14) ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. www.acmicpc.net #include #include #include using namespace std; int main() { int n; cin >> n; vector v(n); // ๋๋‚˜๋Š” ์‹œ๊ฐ„, ์‹œ์ž‘ ์‹œ๊ฐ„ for (int i = 0; i > v[i].second >> v[i].first; sort(v.begin(), v.end()); int ans..

    [C++] ๋ฐฑ ํŠธ๋ž˜ํ‚น(Back Tracking)

    ๋ฐฑ ํŠธ๋ž˜ํ‚น(Back Tracking) ํ•œ์ • ์กฐ๊ฑด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ํ•ด๋ฅผ ์–ป์„ ๋•Œ๊นŒ์ง€ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ฐ€๋‹ค๊ฐ€ ๋‹ค์‹œ ๋Œ์•„์™€์„œ ๋‹ค๋ฅธ ๊ธธ๋กœ ๊ฐ„๋‹ค. ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ DFS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ธฐ๋ณธ ์›๋ฆฌ https://www.acmicpc.net/problem/15649 15649๋ฒˆ: N๊ณผ M (1) ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ค‘๋ณต๋˜๋Š” ์ˆ˜์—ด์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ถœ๋ ฅํ•˜๋ฉด ์•ˆ๋˜๋ฉฐ, ๊ฐ ์ˆ˜์—ด์€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ˆ˜์—ด์€ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. www.acmicpc.net #include using namespace std; int n, m; int number[8]; bool ck[9]; // ์ค‘๋ณต ์—†์ด M๊ฐœ๋ฅผ ๊ณ ๋ฅธ ์ˆ˜..