[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ํƒ์ƒ‰ - BST
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 8. 30. 23:09

BST BST(Binary Search Tree)๋Š” ํŠธ๋ฆฌ์˜ ํ•œ ์ข…๋ฅ˜์ด์ž ์ด์ง„ํƒ์ƒ‰์„ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๊ณผ์ • BST๋ฅผ ์ด์šฉํ•œ ํƒ์ƒ‰์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ๋งŒ๋“ค๊ธฐ (์ƒ์„ฑ) ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ์›ํ•˜๋Š” ์š”์†Œ ์ฐพ๊ธฐ (ํƒ์ƒ‰) ์‚ญ์ œ ๋ฐ ์‚ฝ์ž… ํ•˜๊ธฐ (์‚ญ์ œ / ์‚ฝ์ž…) ์˜ˆ์‹œ ๋จผ์ € ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ๋” ์ž‘์€ ๊ฐ’์˜ ๋…ธ๋“œ๊ฐ€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ๋” ํฐ ๊ฐ’์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ฝ์ž…ํ•˜๋ฉด์„œ ์•Œ๋งž์€ ์œ„์น˜๋ฅผ ์ฐพ์•„์ฃผ๋ฉด ๋œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜์˜จ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ์ค‘์œ„ ์ˆœํšŒํ•˜๋ฉด ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋œ๋‹ค. ๊ทธ ๋‹ค์Œ์—๋Š” ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ ์ฐพ๊ณ  ์‚ญ์ œํ•ด๋ณด์ž. ์›ํ•˜๋Š” ์š”์†Œ๋Š” 6์ด๋‹ค. ์™ผ์ชฝ ๊ทธ๋ฆผ์—์„œ ์˜ค๋ฅธ์ชฝ ๊ทธ..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ๋น„ํŠธ์กฐ์ž‘ (๋น„ํŠธ๋งˆ์Šคํฌ, ์—ฐ์‚ฐ, ์ฝ”๋“œ ๊ตฌํ˜„)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 31. 09:45

๋น„ํŠธ ์กฐ์ž‘ ๊ฐœ๋… ๋น„ํŠธ(bit)๋ž€ 0๊ณผ 1์˜ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋‹จ์œ„์ด๋‹ค. 4bit๋ฅผ ๋ชจ์€ ๋‹จ์œ„๋ฅผ ๋‹ˆ๋ธ”(nibble)์ด๋ผ ๋ถ€๋ฅด๊ณ , 8bit๋ฅผ ๋ชจ์€ ๋‹จ์œ„๋ฅผ ๋ฐ”์ดํŠธ(byte)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 2byte๋ฅผ ๋ชจ์€ ๋‹จ์œ„๋Š” ์ผ๋ถ€ ์ „์žํ†ต์‹ ๊ธฐ๊ธฐ์—์„œ ์›Œ๋“œ(word)๋ผ๊ณ  ํ•œ๋‹ค. ๊ตฌํ˜„ C++์—์„œ๋Š” ๋น„ํŠธ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด์„œ ์ด๋ผ๋Š” ํ—ค๋”๋ฅผ ํฌํ•จํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ์—ฐ์‚ฐ C++์—์„œ ๋น„ํŠธ์—ฐ์‚ฐ๋“ค์€ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐœ๋… ๊ณต๋ถ€ ์ธก๋ฉด์—์„œ ๊ทธ๋ƒฅ ๊ตฌํ˜„๋„ ํ•˜๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ฒ•๋„ ์ตํ˜€๋‘๋ คํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด 1byte ๋‹จ์œ„๋กœ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, bit ๋‹จ์œ„์˜ ์ž๋ฃŒํ˜•์€ ์—†๋‹ค. ๋‹ค๋งŒ bool ํ˜•์€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ 1byte๋ฅผ ์ฐจ์ง€ํ•˜์ง€๋งŒ ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด true ํ˜น์€ false ๋ฐ–์— ์—†์œผ๋ฏ€๋กœ ์ด๋ฅผ ์ด์šฉ..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ž๋ฃŒ๊ตฌ์กฐ - ์Šคํƒ, ํ, ๋ฑ
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 19. 11:39

์Šคํƒ ํŠน์ง• ์šฉ๋„ ์—ฐ์‚ฐ ์‚ฝ์ž… ์‚ญ์ œ ์ ‘๊ทผ ๊ตฌํ˜„ ํ ์šฉ๋„ ์ข…๋ฅ˜ ์—ฐ์‚ฐ ์‚ฝ์ž… ์‚ญ์ œ ์ ‘๊ทผ ๊ตฌํ˜„ ์šฐ์„ ์ˆœ์œ„ ํ ๋ฑ ์šฉ๋„ ๊ตฌํ˜„ ์Šคํƒ ์Šคํƒ์€ LIFO(Last-In First-Out), ์ฆ‰ ํ›„์ž…์„ ์ถœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์ด๋ฉฐ, ์ ‘์‹œ์ฒ˜๋Ÿผ ์Œ“์—ฌ์„œ ์ดํ›„์— ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋น ์ ธ๋‚˜๊ฐ€๋„๋ก ๋˜์–ด์žˆ๋‹ค. top ๋ณ€์ˆ˜๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋“ค์–ด์˜จ ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด -1์ด๋‹ค. ํŠน์ง• LIFO ๋‚ด๋ถ€ ์š”์†Œ๋ฅผ ํ™•์ธํ•  ๋ฐฉ๋ฒ•์ด pop ๋ง๊ณ ๋Š” ์—†๋‹ค. ์šฉ๋„ ์ž…๋ ฅ์˜ ์—ญ์ˆœ์ด ํ•„์š”ํ•  ๋•Œ ์Šคํƒ์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์—์„œ ๋ณต๊ท€ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‹œ์Šคํ…œ ์Šคํƒ์ด ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•œ๋‹ค. ๋˜ํ•œ ๊ด„ํ˜ธ ๊ฒ€์‚ฌ, ๊ณ„์‚ฐ๊ธฐ, ๋ฏธ๋กœ ํƒ์ƒ‰ ๋“ฑ์˜ ๊ฒฝ์šฐ์— ์Šคํƒ์ด ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค. ๊ณ„์‚ฐ๊ธฐ์—์„œ ์ค‘์œ„ ํ‘œ๊ธฐ์‹(infix)์„ ํ›„์œ„ ํ‘œ๊ธฐ์‹(postfix)์œผ๋กœ..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์ž๋ฃŒ๊ตฌ์กฐ - ๋ฐฐ์—ด, ๋ฌธ์ž์—ด
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 19. 11:05

๋ชฉ์ฐจ ๋ฐฐ์—ด ์„ ์–ธ ์ดˆ๊ธฐํ™” ์ ‘๊ทผ ๋‹ค์ฐจ์› ๋ฐฐ์—ด ํฌ์†Œ ํ–‰๋ ฌ ํ‘œํ˜„ ์ฃผ์†Œ์™€ ํฌ์ธํ„ฐ ํฌ์ธํ„ฐ ํŠน์ง• ์ œ์•ฝ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋™์  ๋ฐฐ์—ด(vector) ๋ฌธ์ž์—ด ์„ ์–ธ ์ดˆ๊ธฐํ™” ํ•จ์ˆ˜ ๋ฐฐ์—ด / ๋ฌธ์ž์—ด ๋ฐฐ์—ด ๋ฐฐ์—ด์ด๋ž€ ๋‹จ์ผ ์‹๋ณ„์ž๋กœ _๊ฐ™์€ ์ž๋ฃŒํ˜•_์˜ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์„ ์–ธ c++์—์„œ๋Š” int arr[3];์™€ ๊ฐ™์ด ์ž๋ฃŒํ˜• ๋ฐฐ์—ด์ด๋ฆ„[๋ฐฐ์—ด ๊ธธ์ด];๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค. ์ด ๋•Œ, ๋Œ€๊ด„ํ˜ธ ๋‚ด์˜ ์š”์†Œ์˜ ๊ฐฏ์ˆ˜๋Š” '์ปดํŒŒ์ผ ํƒ€์ž„ ์ƒ์ˆ˜'์—ฌ์•ผํ•œ๋‹ค. ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ๋•Œ, ๊ณ ์ • ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์•Œ์•„์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋งคํฌ๋กœ ๊ธฐํ˜ธ ์ƒ์ˆ˜ (ex_ #define ARRAY_LEN 5)๋‚˜ ์—ด๊ฑฐ์ž(ex_enum A{ARRAY_LEN = 5})๋Š” ๋ฐฐ์—ด์˜ ๊ธธ์ด๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. const ๋˜ํ•œ ์ปดํŒŒ์ผ ์‹œ ๊ณ ์ •๋˜๋Š” ์ƒ์ˆ˜์ด๋ฏ€๋กœ ์‚ฌ์šฉ๊ฐ€..