๋ชฉ๋ก์ „์ฒด ๊ธ€ (1005)

๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[Coding Interview University] ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ : ์ด๋ก  ๋ฐ ๊ตฌํ˜„

๐Ÿซง ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ : “๋ชจ๋“  ์™ผ์ชฝ ์ž์‹๋“ค ≤ n < ๋ชจ๋“  ์˜ค๋ฅธ์ชฝ ์ž์‹๋“ค” ์†์„ฑ์€ ๋ชจ๋“  ๋…ธ๋“œ n์— ๋Œ€ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ์ฐธ์ด์–ด์•ผ ํ•จ : ๋ชจ๋“  ๋…ธ๋“œ์— ๋Œ€ํ•ด์„œ ์™ผ์ชฝ ์ž์‹๋“ค์˜ ๊ฐ’์ด ํ˜„์žฌ ๋…ธ๋“œ ๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋„๋ก ํ•˜๊ณ , ์˜ค๋ฅธ์ชฝ ์ž์‹๋“ค ๊ฐ’์€ ํ˜„์žฌ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ๋ฐ˜๋“œ์‹œ ์ปค์•ผํ•จ ๐Ÿซง ๊ท ํ˜• vs ๋น„๊ท ํ˜• ๊ท ํ˜• ๋ ˆ๋“œ ๋ธ”๋ž™ ํŠธ๋ฆฌ AVL ํŠธ๋ฆฌ ๐Ÿซง ์™„์ „์ด์ง„ํŠธ๋ฆฌ : ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ๋†’์ด์—์„œ ๋…ธ๋“œ๊ฐ€ ๊ฝ‰ ์ฐจ ์žˆ๋Š” ์ด์ง„ ํŠธ๋ฆฌ : ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๋Š” ๊ฝ‰ ์ฐจ ์žˆ์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ ๋…ธ๋“œ๊ฐ€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ฑ„์›Œ์ ธ์•ผ ํ•จ ๐Ÿซง ์ „์ด์ง„ํŠธ๋ฆฌ : ๋ชจ๋“  ๋…ธ๋“œ์˜ ์ž์‹์ด ์—†๊ฑฐ๋‚˜ ์ •ํ™•ํžˆ ๋‘ ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ : ์ž์‹์ด ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ๋…ธ๋“œ๊ฐ€ ์กด์žฌํ•ด์„œ๋Š” ์•ˆ๋จ ๐Ÿซง ํฌํ™”์ด์ง„ํŠธ๋ฆฌ : ์ „ ์ด์ง„ ํŠธ๋ฆฌ์ด๋ฉด์„œ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์ธ ๊ฒฝ์šฐ : ๋ชจ๋“  ๋ง๋‹จ ๋…ธ๋“œ๋Š” ๊ฐ™์€ ๋†’์ด์— ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ ..

[BAEKJOON C++] 9243_ํŒŒ์ผ ์™„์ „ ์‚ญ์ œ

์–ด๋Š ๋‚ , ์ƒ๊ทผ์ด์˜ ์—ฌ์ž์นœ๊ตฌ๋Š” ์ƒ๊ทผ์ด์—๊ฒŒ ๋งค์šฐ ๊ธด๊ธ‰ํ•œ ๋ชฉ์†Œ๋ฆฌ๋กœ ์ „ํ™”ํ–ˆ๋‹ค. "์ƒ๊ทผ์•„, ๋‚˜ ๊ธ‰ํ•˜๊ฒŒ ์ง€์›Œ์•ผ ๋  ํŒŒ์ผ์ด ์žˆ์–ด! ์ด ํŒŒ์ผ์€ ์ ˆ๋Œ€ ๋ณต๊ตฌ๋˜๋ฉด ์•ˆ๋ผ." ํŒŒ์ผ์„ ์™„์ „ ์‚ญ์ œํ•˜๋ ค๋ฉด ํ•˜๋“œ๋“œ๋ผ์ด๋ธŒ์—์„œ ๊ทธ ๊ตฌ๊ฐ„์„ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋กœ ๋ฐ˜๋ณตํ•ด์„œ ๋ฎ์–ด์จ์•ผ ํ•œ๋‹ค. ์ƒ๊ทผ์ด๋Š” ์—ฌ์ž์นœ๊ตฌ๋ฅผ ์œ„ํ•ด ํŒŒ์ผ ์™„์ „ ์‚ญ์ œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์‚ญ์ œํ•  ํŒŒ์ผ์„ ํ•˜๋‚˜ ๊ณ ๋ฅด๊ณ , ๋ช‡ ๋ฒˆ ๋ฎ์–ด์”Œ์šธ์ง€ n์„ ์ž…๋ ฅํ•œ๋‹ค. n์€ 1๋ถ€ํ„ฐ 20๊นŒ์ง€ ์ˆซ์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ์•ผ ํ•œ๋‹ค. ์ƒ๊ทผ์ด์˜ ํ”„๋กœ๊ทธ๋žจ์€ ํŒŒ์ผ์„ ๋น„ํŠธ๋‹จ์œ„๋กœ ๋ฎ์–ด์”Œ์šด๋‹ค. ํ•œ ๋ฒˆ ๋ฎ์–ด์”Œ์šธ ๋•Œ, 0์ธ ๋น„ํŠธ๋Š” 1๋กœ, 1์ธ ๋น„ํŠธ๋Š” 0์œผ๋กœ ๋ฎ์–ด์”Œ์šด๋‹ค. ์ƒ๊ทผ์ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ–ˆ๊ณ  ํ…Œ์ŠคํŠธํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ธฐ ์ „์— ํŒŒ์ผ์ด ์žˆ์—ˆ๋˜ ๊ณณ์˜ ๋น„ํŠธ์™€ ํŒŒ์ผ์„ ์‚ญ์ œํ•œ ํ›„์— ํŒŒ์ผ์ด ์žˆ์—ˆ๋˜ ๊ณณ์˜ ๋น„ํŠธ๊ฐ€ ์ฃผ์–ด์กŒ์„..

[BAEKJOON C++] 2920_์Œ๊ณ„

๋‹ค์žฅ์กฐ๋Š” c d e f g a b C, ์ด 8๊ฐœ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ 8๊ฐœ ์Œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆซ์ž๋กœ ๋ฐ”๊พธ์–ด ํ‘œํ˜„ํ•œ๋‹ค. c๋Š” 1๋กœ, d๋Š” 2๋กœ, ..., C๋ฅผ 8๋กœ ๋ฐ”๊พผ๋‹ค. 1๋ถ€ํ„ฐ 8๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ์—ฐ์ฃผํ•œ๋‹ค๋ฉด ascending, 8๋ถ€ํ„ฐ 1๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ์—ฐ์ฃผํ•œ๋‹ค๋ฉด descending, ๋‘˜ ๋‹ค ์•„๋‹ˆ๋ผ๋ฉด mixed ์ด๋‹ค. ์—ฐ์ฃผํ•œ ์ˆœ์„œ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๊ฒƒ์ด ascending์ธ์ง€, descending์ธ์ง€, ์•„๋‹ˆ๋ฉด mixed์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— 8๊ฐœ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆซ์ž๋Š” ๋ฌธ์ œ ์„ค๋ช…์—์„œ ์„ค๋ช…ํ•œ ์Œ์ด๋ฉฐ, 1๋ถ€ํ„ฐ 8๊นŒ์ง€ ์ˆซ์ž๊ฐ€ ํ•œ ๋ฒˆ์”ฉ ๋“ฑ์žฅ ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ascending, descending, mixed ์ค‘ ํ•˜๋‚˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. // [2920] ์Œ๊ณ„ /* ๋‹ค์žฅ์กฐ๋Š” c ..

[Coding Interview University] ํŠธ๋ฆฌ : ์ด๋ก  ๋ฐ ๊ตฌํ˜„

๐Ÿซง ํŠธ๋ฆฌ : ํ•˜๋‚˜์˜ ๋ฃจํŠธ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค : ๋ฃจํŠธ ๋…ธ๋“œ๋Š” 0๊ฐœ ์ด์ƒ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค : ํŠธ๋ฆฌ์—๋Š” ์‚ฌ์ดํด ์กด์žฌํ•  ์ˆ˜ ์—†๋‹ค : ๋…ธ๋“œ๋“ค์€ ํŠน์ • ์ˆœ์„œ๋กœ ๋‚˜์—ด๋  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋Ÿด ์ˆ˜ ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค : ๊ฐ ๋…ธ๋“œ๋Š” ์–ด๋–ค ์ž๋ฃŒํ˜•์œผ๋กœ๋„ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค ๋…ธ๋“œ(node) ํŠธ๋ฆฌ์˜ ๊ตฌ์„ฑ์š”์†Œ์— ํ•ด๋‹นํ•˜๋Š” A, B, C, D, E, F์™€ ๊ฐ™์€ ์š”์†Œ ๊ฐ„์„ (edge) ๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์—ฐ๊ฒฐ์„  ๋ฃจํŠธ ๋…ธ๋“œ(root node) ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ์ตœ์ƒ์œ„์— ์กด์žฌํ•˜๋Š” A์™€ ๊ฐ™์€ ๋…ธ๋“œ ๋‹จ๋ง ๋…ธ๋“œ(terminal node, leaf node) ์•„๋ž˜๋กœ ๋˜ ๋‹ค๋ฅธ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์€ E, F, C, D์™€ ๊ฐ™์€ ๋…ธ๋“œ ๋‚ด๋ถ€ ๋…ธ๋“œ(internal node),๋น„ ๋‹จ๋ง ๋…ธ๋“œ(non-terminal node) ๋‹จ๋ง ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋…ธ๋“œ๋กœ A, B..

[Coding Interview University] ๋น„ํŠธ ์—ฐ์‚ฐ : ์ด๋ก  ๋ฐ ๊ตฌํ˜„

๐Ÿซง ๋น„ํŠธ ์กฐ์ž‘ : 0s ๋Š” ๋ชจ๋“  ๋น„ํŠธ๊ฐ€ 0 ์ธ ๊ฐ’ : 1s ๋Š” ๋ชจ๋“  ๋น„ํŠธ๊ฐ€ 1 ์ธ ๊ฐ’ : ์—ฐ์‚ฐ๋“ค์ด ๋น„ํŠธ ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด ์ง„๋‹ค! : ํ•œ ๋น„ํŠธ์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์ด ๋‹ค๋ฅธ ๋น„ํŠธ์— ์–ด๋–ค ์˜ํ–ฅ๋„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค ๐Ÿซง 2์˜ ๋ณด์ˆ˜์™€ ์Œ์ˆ˜ : ์ปดํ“จํ„ฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•  ๋•Œ 2์˜ ๋ณด์ˆ˜ ํ˜•ํƒœ๋กœ ์ €์žฅ : ์–‘์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋• ๋ฌธ์ œ ์—†์Œ : ์Œ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋• ๊ทธ ์ˆ˜์˜ ์ ˆ๋Œ“๊ฐ’์— ๋ถ€ํ˜ธ๋น„ํŠธ๋ฅผ 1๋กœ ์„ธํŒ…ํ•œ ๋’ค 2์˜ ๋ณด์ˆ˜๋ฅผ ์ทจํ•œ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•จ : N๋น„ํŠธ ์ˆซ์ž์— ๋Œ€ํ•œ 2์˜ ๋ณด์ˆ˜๋Š” 2^N ์— ๋Œ€ํ•œ ๋ณด์ˆ˜๊ฐ’๊ณผ ๊ฐ™์Œ (N์€ ๋ถ€ํ˜ธ๋น„ํŠธ๋ฅผ ๋บ€ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋น„ํŠธ์˜ ๊ฐœ์ˆ˜) : 2์˜ ๋ณด์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ์–‘์ˆ˜๋กœ ํ‘œํ˜„๋œ 2์ง„์ˆ˜๋ฅผ ๋’ค์ง‘์€ ๋’ค 1์„ ๋”ํ•ด ์ฃผ๋Š” ๊ฒƒ ๐Ÿซง ์‚ฐ์ˆ  ์šฐ์ธก ์‹œํ”„ํŠธ VS ๋…ผ๋ฆฌ ์šฐ์ธก ์‹œํ”„ํŠธ ์‚ฐ์ˆ  ์šฐ์ธก ์‹œํ”„ํŠธ ๊ธฐ๋ณธ์ ์œผ๋กœ 2..

[BAEKJOON C++] 5596_์‹œํ—˜ ์ ์ˆ˜

๋ฏผ๊ตญ์ด์™€ ๋งŒ์„ธ๋Š” 4๊ณผ๋ชฉ(์ •๋ณด, ์ˆ˜ํ•™, ๊ณผํ•™, ์˜์–ด)์— ๋Œ€ํ•œ ์‹œํ—˜์„ ๋ดค๋‹ค ๋ฏผ๊ตญ์ด์™€ ๋งŒ์„ธ๊ฐ€ ๋ณธ 4๊ณผ๋ชฉ์˜ ์ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ๋ฏผ๊ตญ์ด์˜ ์ด์  S์™€ ๋งŒ์„ธ์˜ ์ด์  T ์ค‘์—์„œ ํฐ ์ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋‹จ, ์„œ๋กœ ๋™์ ์ผ ๋•Œ๋Š” ๋ฏผ๊ตญ์ด์˜ ์ด์  S๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค ์ž…๋ ฅ 1๋ฒˆ์งธ ์ค„์—๋Š” ๋ฏผ๊ตญ์ด์˜ ์ •๋ณด, ์ˆ˜ํ•™, ๊ณผํ•™, ์˜์–ด ์ ์ˆ˜(์ •์ˆ˜ํ˜•), ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ 2๋ฒˆ์งธ ์ค„์—๋Š” ๋งŒ์„ธ์˜ ์ •๋ณด, ์ˆ˜ํ•™, ๊ณผํ•™, ์˜์–ด ์ ์ˆ˜(์ •์ˆ˜ํ˜•), ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ ์ถœ๋ ฅ ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š” ์ •๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค // [5596] ์‹œํ—˜ ์ ์ˆ˜ /* ๋ฏผ๊ตญ์ด์™€ ๋งŒ์„ธ๋Š” 4๊ณผ๋ชฉ(์ •๋ณด, ์ˆ˜ํ•™, ๊ณผํ•™, ์˜์–ด)์— ๋Œ€ํ•œ ์‹œํ—˜์„ ๋ดค๋‹ค ๋ฏผ๊ตญ์ด์™€ ๋งŒ์„ธ๊ฐ€ ๋ณธ 4๊ณผ๋ชฉ์˜ ์ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ๋ฏผ๊ตญ์ด์˜ ์ด์  S์™€ ๋งŒ์„ธ์˜ ์ด์  T ์ค‘์—์„œ ํฐ ์ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋‹จ, ์„œ๋กœ ๋™์ ์ผ ๋•Œ๋Š” ๋ฏผ๊ตญ์ด์˜ ์ด์  S๋ฅผ ..