๊ด€๋ฆฌ ๋ฉ”๋‰ด

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

DATA101

์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ(Complete Binary Tree) ์ž๋ฃŒ๊ตฌ์กฐ ์ดํ•ด

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ(Complete Binary Tree) ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. * ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ(Complete Binary Tree) ์ž๋ฃŒ๊ตฌ์กฐ๋ž€? ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ๋ž€ ๊ฐ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ 2๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ–๋Š” ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ์„œ ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์™„์ „ํžˆ ์ฑ„์›Œ์ ธ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ตœํ•˜๋‹จ ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๋Š” ์ขŒ์ธก๋งŒ ๋…ธ๋“œ๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ๊ฑฐ๋‚˜ ์ขŒ์ธก๊ณผ ์šฐ์ธก ๋ชจ๋‘ ์ฑ„์›Œ์ ธ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ๋Š” ์ตœํ•˜๋‹จ ์ขŒ์ธก ๋…ธ๋“œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์‚ฝ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 1 ์ฐธ๊ณ ). ๊ทธ๋ฆผ 1 ์šฐ์ธก ํŠธ๋ฆฌ๋Š” ๋…ธ๋“œ 12์˜ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์šฐ์ธก์—๋งŒ ์‚ฝ์ž…๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํฌ์ŠคํŒ… ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์˜ค๋Š˜๋„ ๊ฑด๊ฐ•ํ•œ ํ•˜๋ฃจ ๋ณด๋‚ด์‹œ๊ธธ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜(Parametric Search)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜(parametric search)์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๐Ÿ“š ๋ชฉ์ฐจ 1. ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜๋ž€? 2. ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„๊นŒ? 3. ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜์™€ ์ด์ง„ ํƒ์ƒ‰ ๊ฐ„์˜ ์ฐจ์ด์  4. ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜์˜ ๋™์ž‘ ๊ณผ์ • 4.1. ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜ ์˜ˆ์‹œ 4.2. ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ 1. ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜๋ž€? ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜๋Š” ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ๊ฒฐ์ • ๋ฌธ์ œ๋กœ ๋ฐ”๊พธ์–ด ํ’€์–ด ๋‚˜๊ฐ€๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฒฐ์ • ๋ฌธ์ œ๋ž€ 'yes' or 'no', ์ฆ‰, '์˜ˆ' ๋˜๋Š” '์•„๋‹ˆ์˜ค'๋กœ ๋‹ตํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜๋Š” ์ฃผ๋กœ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ๋™์‹œ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ณ€์ˆซ๊ฐ’์„ ์ฐพ์•„๋‚˜๊ฐ€๋Š” ๋ฌธ์ œ์—์„œ ํ™œ์šฉ๋˜๋ฉฐ, ์ด์ง„ ํƒ์ƒ‰(Binary Search)์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ์กฐ๊ฑด์„ ..

[ํŒŒ์ด์ฌ] ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•œ ๋ฌธ์ž์—ด-์ˆซ์ž ๋ณ€ํ™˜(ord, chr ๋‚ด์žฅํ•จ์ˆ˜)

ํŒŒ์ด์ฌ ๋‚ด์žฅ ํ•จ์ˆ˜ ord(), chr()๋Š” ์œ ๋‹ˆ์ฝ”๋“œ(Unicode)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด-์ˆซ์ž ๊ฐ„์˜ ๋ณ€ํ™˜์„ ๋„์™€์ค๋‹ˆ๋‹ค. ๋‘ ํ•จ์ˆ˜๋ฅผ ๊ฐ๊ฐ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. chr() ํ•จ์ˆ˜: ์ˆซ์ž๐Ÿ‘‰๋ฌธ์ž์—ด ๋ณ€ํ™˜ chr(์ˆซ์ž) chr() ํ•จ์ˆ˜ ์•ˆ์— ์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ์ˆซ์ž์™€ ๊ฐ™์€ ์œ ๋‹ˆ์ฝ”๋“œ ํฌ์ธํŠธ๋ฅผ ๊ฐ–๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ด ์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 97์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฌธ์ž์—ด 'a'๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ์ˆซ์ž-์•ŒํŒŒ๋ฒณ ๊ฐ„์˜ ์œ ๋‹ˆ์ฝ”๋“œ ํฌ์ธํŠธ ์ •๋ณด๋ฅผ ํฌ์ŠคํŒ… ๋งจ ์•„๋ž˜ ํ‘œ 1 ์— ์ •๋ฆฌํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•˜์‹  ๋ถ„๋“ค์€ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 2. ord() ํ•จ์ˆ˜: ๋ฌธ์ž์—ด๐Ÿ‘‰์ˆซ์ž ๋ณ€ํ™˜ ord(๋ฌธ์ž์—ด) chr() ํ•จ์ˆ˜์™€ ๋ฐ˜๋Œ€๋กœ, ord() ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€ ์œ ๋‹ˆ์ฝ”๋“œ ํฌ์ธํŠธ๋ฅผ ๊ฐ–๋Š” ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 'a'๋ฅผ..

SW ๊ฐœ๋ฐœ/Python 2021. 4. 25. 10:23
[ํŒŒ์ด์ฌ] ํŒฉํ† ๋ฆฌ์–ผ, ์ œ๊ณฑ๊ทผ, ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜, ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜, ํŒŒ์ด, ์ž์—ฐ์ƒ์ˆ˜ ๊ณ„์‚ฐํ•˜๊ธฐ(feat. math ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)!

์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ค๋Š˜์€ ๋‹ค์–‘ํ•œ ์ˆ˜ํ•™์  ๊ณ„์‚ฐ์ด๋‚˜ ๊ธฐํ˜ธ๋ฅผ ์‰ฝ๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” math ํŒŒ์ด์ฌ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜์ฃ ! ๋ชฉ์ฐจ 1. ํŒฉํ† ๋ฆฌ์–ผ(factorial) 2. ์ œ๊ณฑ๊ทผ(square root) 3. ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜(Greatest Common Divisor, GCD) 4. ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜(Least Common Multiple, LCM) 5. ์ž์—ฐ์ƒ์ˆ˜(\(e\)) 6. ํŒŒ์ด(\(\pi\)) 1. ํŒฉํ† ๋ฆฌ์–ผ(factorial) ํŒฉํ† ๋ฆฌ์–ผ(factorial)์€ \(n\) ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋กœ์„œ ์ˆ˜ํ•™์ ์œผ๋กœ๋Š” \(n!\) ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. math ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ factorial() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ \..

SW ๊ฐœ๋ฐœ/Python 2021. 4. 24. 09:58
[ํŒŒ์ด์ฌ] Counter ํ•จ์ˆ˜: ๋ฆฌ์ŠคํŠธ ๋‚ด ์›์†Œ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ!(feat. collections ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)

์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ค๋Š˜์€ ํŒŒ์ด์ฌ Counter ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ ๋‚ด ์›์†Œ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์†Œ์Šค์ฝ”๋“œ from collections import Counter # ๊ณผ์ผ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ arr = ['Apple', 'Banana', 'Orange', 'Apple', 'Grape', 'Orange', 'Water Melon'] cnt = Counter(arr) print(cnt['Apple']) # ์‚ฌ๊ณผ ๊ฐœ์ˆ˜ print(cnt['Orange']) # ์˜ค๋ Œ์ง€ ๊ฐœ์ˆ˜ print(dict(cnt)) # ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜•์œผ๋กœ ์ถœ๋ ฅ ๊ฐ€์žฅ ๋จผ์ €, ๋ฆฌ์ŠคํŠธ ๋‚ด ์›์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๊ธฐ ์œ„ํ•ด์„œ๋Š” collections ํŒŒ์ด์ฌ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ Counter ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํ•จ์ˆ˜์— ๋ฆฌ..

SW ๊ฐœ๋ฐœ/Python 2021. 4. 23. 11:29
[ํŒŒ์ด์ฌ] ์ด์ง„ ํƒ์ƒ‰ ๊ตฌํ˜„์„ ๋„์™€์ฃผ๋Š” bisect ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!

์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ค๋Š˜์€ ํŒŒ์ด์ฌ์—์„œ ์ด์ง„ ํƒ์ƒ‰(Binary Search) ๊ตฌํ˜„์„ ๋„์™€์ฃผ๋Š” bisect ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ์ด์ง„ ํƒ์ƒ‰์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š” :) heytech.tistory.com/64 [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ด์ง„ ํƒ์ƒ‰(Binary Search)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!(+Python ๊ตฌํ˜„) ์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ค๋Š˜์€ ์ด์ง„ ํƒ์ƒ‰(Binary Search) ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ฐ”๋กœ ์‹œ์ž‘ํ•˜์ฃ ! ๋ชฉ์ฐจ 1. ์ด์ง„ ํƒ์ƒ‰์ด๋ž€? 2. ์ด์ง„ ํƒ์ƒ‰์˜ ๋™์ž‘ ๊ณผ์ • 3. ์ด์ง„ ํƒ์ƒ‰์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ 4. ์ด์ง„ ํƒ์ƒ‰ ๊ตฌํ˜„ heytech.tistory.com bisect ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ž€? bisect ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์›์†Œ๋“ค์ด ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ์›์†Œ๋ฅผ ์ฐพ์„ ๋•Œ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. bisect ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ..

SW ๊ฐœ๋ฐœ/Python 2021. 4. 22. 08:20