2025/02/03 4

[Sort] ์ •๋ ฌ

์ •๋ ฌ1. ๋ฒ„๋ธ” ์ •๋ ฌ2. ์„ ํƒ ์ •๋ ฌ3. ์‚ฝ์ž… ์ •๋ ฌ4. ๋ณ‘ํ•ฉ ์ •๋ ฌ5. ํ€ต ์ •๋ ฌ6. ํž™ ์ •๋ ฌ1. ๋ฒ„๋ธ” ์ •๋ ฌ์ธ์ ‘ํ•œ ๋‘ ๊ฐœ์˜ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ํฐ ๊ฐ’์„ ๋’ค๋กœ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •๋ ฌ - ๋™์ž‘ ๊ณผ์ •1. ๋ฐฐ์—ด์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ˆœํšŒํ•˜๋ฉฐ ์ธ์ ‘ํ•œ ๋‘ ์š”์†Œ๋ฅผ ๋น„๊ต2. ์•ž ์š”์†Œ๊ฐ€ ๋’ค ์š”์†Œ๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์œ„์น˜ ๊ตํ™˜3. ํ•œ ๋ฒˆ์˜ ์ˆœํšŒ๊ฐ€ ๋๋‚˜๋ฉด ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ๋ฐฐ์—ด์˜ ๋์œผ๋กœ ์ด๋™4. ์ด๋ฅผ ๋ฐฐ์—ด์ด ์ •๋ ฌ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต - ์ฝ”๋“œ ๊ตฌํ˜„void bubbleSort(int arr[], int n) { for (int i = 0; i arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; ..

[Subsequence] LIS์™€ LCS

LIS์™€ LCS1. LIS2. LCS1. LISLIS(Longest Increasing Subsequence)๋Š” ์ตœ์žฅ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด์ž…๋‹ˆ๋‹ค.์ฃผ์–ด์ง„ ์ˆ˜์—ด์—์„œ ์›์†Œ๋“ค์˜ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์ฐพ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. 10, 20, 10, 30, 20, 50 ์ˆ˜์—ด์—์„œ LIS๋Š” 10, 20, 30, 50 ์ž…๋‹ˆ๋‹ค.์ด๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์€ ๋™์  ๊ณ„ํš๋ฒ•๊ณผ ์ด๋ถ„ ํƒ์ƒ‰+DP๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 2. LCSLCS(Longest Common Subsequence)๋Š” ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด์ž…๋‹ˆ๋‹ค.๋‘ ๊ฐœ์˜ ๋ฌธ์ž์—ด์—์„œ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๊ธด ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์ฐพ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด A: ABCD ๊ณผ ๋ฌธ์ž์—ด B: ACBD ์—์„œ LCS๋Š” ABD ๋˜๋Š” ACD ์ž…๋‹ˆ๋‹ค.์ด๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์€ ๋™์  ๊ณ„ํš๋ฒ•๊ณผ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.๋ฌธ์ œ..

[Graph] ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)๊ณผ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)

๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)๊ณผ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)1. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)2. ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)3. ์ตœ์  ๊ฒฝ๋กœ์™€ ์ตœ๋‹จ ๊ฒฝ๋กœ ์ฐจ์ด1. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋๊นŒ์ง€ ํƒ์ƒ‰ํ•œ ํ›„, ๋˜๋Œ์•„๊ฐ€๋ฉด์„œ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ์ตœ์  ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.์ตœ์  ๊ฒฝ๋กœ๋Š” ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.์„œ์šธ์—์„œ ๋ถ€์‚ฐ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋งŒ ์งง์€ ๊ฒƒ์ด ์•„๋‹Œ ๊ตํ†ต ์ฒด์ฆ, ๊ณ ์†๋„๋กœ ํ†จ๊ฒŒ์ดํŠธ ๋น„์šฉ ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ธธ์„ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ, ๋ฒจ๋งŒ-ํฌ๋“œ, ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. - ๋™์ž‘ ๊ณผ์ •1. ์‹œ์ž‘ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ณ  ์Šคํƒ์— ๋„ฃ์Œ (๋˜๋Š” ์žฌ๊ท€ ํ˜ธ์ถœ)2. ํ˜„์žฌ ๋…ธ๋“œ์—์„œ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธ3. ๋” ์ด์ƒ ๋ฐฉ๋ฌธํ•  ๋…ธ๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ด์ „ ๋…ธ๋“œ๋กœ ๋˜๋Œ์•„๊ฐ4. ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋ฐ˜๋ณตํ•  ..

[Greedy] Knanspack ์•Œ๊ณ ๋ฆฌ์ฆ˜ - C์–ธ์–ด

Knapsack ์•Œ๊ณ ๋ฆฌ์ฆ˜ - C์–ธ์–ด1. Knapsack ์•Œ๊ณ ๋ฆฌ์ฆ˜2. ์ฝ”๋“œ ๊ตฌํ˜„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์Šตํ•˜๊ธฐ ์œ„ํ•ด ํฌ์ŠคํŒ… ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.1. Knapsack ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ฐฐ๋‚ญ ๋ฌธ์ œ(Knapsack Problem)์€ ์ œํ•œ๋œ ์šฉ๋Ÿ‰์„ ๊ฐ€์ง„ ๊ฐ€๋ฐฉ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌผ๊ฑด์„ ๋„ฃ์„ ๋•Œ, ๊ฐ€์น˜์˜ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋„๋ก ํ•˜๋Š” ์ตœ์ ํ™” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ฐฐ๋‚ญ ๋ฌธ์ œ์˜ ์ข…๋ฅ˜์—๋Š” 0/1 ๋ฐฐ๋‚ญ ๋ฌธ์ œ(DP)์™€ ๋ถ„ํ•  ๊ฐ€๋Šฅ ๋ฐฐ๋‚ญ ๋ฌธ์ œ(๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ฅผ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 2. ์ฝ”๋“œ ๊ตฌํ˜„- ์ „์ฒด ์ฝ”๋“œ#include #include typedef struct Bag { int value; int weight; float ratio;} Bag;int compare(const void *a, co..