- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (355)
DATA101
๋ณธ ํฌ์คํ ์์๋ ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree) ์๋ฃ๊ตฌ์กฐ์ ๋ํด ์์๋ด ๋๋ค. * ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree) ์๋ฃ๊ตฌ์กฐ๋? ์์ ์ด์ง ํธ๋ฆฌ๋ ๊ฐ ๋ ธ๋๊ฐ ์ต๋ 2๊ฐ์ ์์ ๋ ธ๋๋ฅผ ๊ฐ๋ ํธ๋ฆฌ ํํ์ ์๋ฃ๊ตฌ์กฐ๋ก์ ๋ง์ง๋ง ๋ ๋ฒจ์ ์ ์ธํ ๋ชจ๋ ๋ ธ๋๋ ์์ ํ ์ฑ์์ ธ ์์ด์ผ ํฉ๋๋ค. ๋ํ, ์ตํ๋จ ๋ ๋ฒจ์ ๋ ธ๋๋ ์ข์ธก๋ง ๋ ธ๋๊ฐ ์ฑ์์ ธ ์๊ฑฐ๋ ์ข์ธก๊ณผ ์ฐ์ธก ๋ชจ๋ ์ฑ์์ ธ ์์ด์ผ ํ๋ฉฐ, ๋ ธ๋๋ฅผ ์ฝ์ ํ ๋๋ ์ตํ๋จ ์ข์ธก ๋ ธ๋๋ถํฐ ์ฐจ๋ก๋๋ก ์ฝ์ ํด์ผ ํฉ๋๋ค(๊ทธ๋ฆผ 1 ์ฐธ๊ณ ). ๊ทธ๋ฆผ 1 ์ฐ์ธก ํธ๋ฆฌ๋ ๋ ธ๋ 12์ ์์ ๋ ธ๋๊ฐ ์ฐ์ธก์๋ง ์ฝ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์์ ์ด์งํธ๋ฆฌ๋ผ๊ณ ํ ์ ์์ต๋๋ค. ํฌ์คํ ๋ด์ฉ์ ์ค๋ฅ๊ฐ ์์ ๊ฒฝ์ฐ ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ๊ฐ์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๊ทธ๋ผ ์ค๋๋ ๊ฑด๊ฐํ ํ๋ฃจ ๋ณด๋ด์๊ธธ..
๋ณธ ํฌ์คํ ์์๋ ํ๋ผ๋ฉํธ๋ฆญ ์์น(parametric search)์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ํ๋ผ๋ฉํธ๋ฆญ ์์น๋? 2. ํ๋ผ๋ฉํธ๋ฆญ ์์น๋ ์ธ์ ์ฌ์ฉํ๋ฉด ์ข์๊น? 3. ํ๋ผ๋ฉํธ๋ฆญ ์์น์ ์ด์ง ํ์ ๊ฐ์ ์ฐจ์ด์ 4. ํ๋ผ๋ฉํธ๋ฆญ ์์น์ ๋์ ๊ณผ์ 4.1. ํ๋ผ๋ฉํธ๋ฆญ ์์น ์์ 4.2. ํ๋ผ๋ฉํธ๋ฆญ ์์น์ ์๊ฐ ๋ณต์ก๋ 1. ํ๋ผ๋ฉํธ๋ฆญ ์์น๋? ํ๋ผ๋ฉํธ๋ฆญ ์์น๋ ์ต์ ํ ๋ฌธ์ ๋ฅผ ๊ฒฐ์ ๋ฌธ์ ๋ก ๋ฐ๊พธ์ด ํ์ด ๋๊ฐ๋ ๊ธฐ๋ฒ์ ๋๋ค. ์ฌ๊ธฐ์ ๊ฒฐ์ ๋ฌธ์ ๋ 'yes' or 'no', ์ฆ, '์' ๋๋ '์๋์ค'๋ก ๋ตํ๋ ๋ฌธ์ ๋ฅผ ๋งํฉ๋๋ค. ํ๋ผ๋ฉํธ๋ฆญ ์์น๋ ์ฃผ๋ก ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด์ ๋์์ ๊ฐ์ฅ ์ ํฉํ ๋ณ์ซ๊ฐ์ ์ฐพ์๋๊ฐ๋ ๋ฌธ์ ์์ ํ์ฉ๋๋ฉฐ, ์ด์ง ํ์(Binary Search)์ ์ด์ฉํ์ฌ ๊ตฌํํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ ์กฐ๊ฑด์ ..
ํ์ด์ฌ ๋ด์ฅ ํจ์ ord(), chr()๋ ์ ๋์ฝ๋(Unicode)๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์์ด-์ซ์ ๊ฐ์ ๋ณํ์ ๋์์ค๋๋ค. ๋ ํจ์๋ฅผ ๊ฐ๊ฐ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. 1. chr() ํจ์: ์ซ์๐๋ฌธ์์ด ๋ณํ chr(์ซ์) chr() ํจ์ ์์ ์ซ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ฉด ํด๋น ์ซ์์ ๊ฐ์ ์ ๋์ฝ๋ ํฌ์ธํธ๋ฅผ ๊ฐ๋ ๋ฌธ์์ด์ ๋ฐํํด ์ค๋๋ค. ์๋ฅผ ๋ค์ด, 97์ ์ ๋ ฅํ๋ฉด ๋ฌธ์์ด 'a'๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค. ์ซ์-์ํ๋ฒณ ๊ฐ์ ์ ๋์ฝ๋ ํฌ์ธํธ ์ ๋ณด๋ฅผ ํฌ์คํ ๋งจ ์๋ ํ 1 ์ ์ ๋ฆฌํด ๋์์ต๋๋ค. ํ์ํ์ ๋ถ๋ค์ ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋๋ค. 2. ord() ํจ์: ๋ฌธ์์ด๐์ซ์ ๋ณํ ord(๋ฌธ์์ด) chr() ํจ์์ ๋ฐ๋๋ก, ord() ํจ์๋ ๋ฌธ์์ด์ ์ ๋ ฅํ๋ฉด ํด๋น ๋ฌธ์์ด๊ณผ ๊ฐ์ ์ ๋์ฝ๋ ํฌ์ธํธ๋ฅผ ๊ฐ๋ ์ ์๋ฅผ ๋ฐํํด ์ค๋๋ค. ์๋ฅผ ๋ค์ด, 'a'๋ฅผ..
์๋ ํ์ธ์, ์ค๋์ ๋ค์ํ ์ํ์ ๊ณ์ฐ์ด๋ ๊ธฐํธ๋ฅผ ์ฝ๊ฒ ํ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ 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() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝ์ฐ์ ์๋ฅผ ํธ๋ฆฌํ๊ฒ ๊ณ์ฐํ ์ ์์ต๋๋ค. ๋ค์์ \..
์๋ ํ์ธ์, ์ค๋์ ํ์ด์ฌ 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 ํจ์๋ฅผ ๊ฐ์ ธ์์ผ ํฉ๋๋ค. ํด๋น ํจ์์ ๋ฆฌ..
์๋ ํ์ธ์, ์ค๋์ ํ์ด์ฌ์์ ์ด์ง ํ์(Binary Search) ๊ตฌํ์ ๋์์ฃผ๋ bisect ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์์๋ด ๋๋ค. ์ด์ง ํ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์ :) heytech.tistory.com/64 [์๊ณ ๋ฆฌ์ฆ] ์ด์ง ํ์(Binary Search)์ ๋ํด ์์๋ณด์!(+Python ๊ตฌํ) ์๋ ํ์ธ์, ์ค๋์ ์ด์ง ํ์(Binary Search) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ผ ๋ฐ๋ก ์์ํ์ฃ ! ๋ชฉ์ฐจ 1. ์ด์ง ํ์์ด๋? 2. ์ด์ง ํ์์ ๋์ ๊ณผ์ 3. ์ด์ง ํ์์ ์๊ฐ ๋ณต์ก๋ 4. ์ด์ง ํ์ ๊ตฌํ heytech.tistory.com bisect ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋? bisect ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์๋ค์ด ์ ๋ ฌ๋ ๋ฆฌ์คํธ์์ ํน์ ์์๋ฅผ ์ฐพ์ ๋ ํจ๊ณผ์ ์ ๋๋ค. bisect ๋ผ์ด๋ธ๋ฌ๋ฆฌ..
์๋ ํ์ธ์, ์ค๋์ ํ์ด์ฌ itertools ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ์์ด(Permutation), ์กฐํฉ(Combination), ์ค๋ณต ์์ด(Permutation with reptition), ์ค๋ณต ์กฐํฉ(Combination with reptition)์ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต์ ํด ๋๋ฆฝ๋๋ค. ๊ทธ๋ผ ๋ฐ๋ก ์์ํ์ฃ ! ๐ ๋ชฉ์ฐจ 1. ์์ด(Permutation) 2. ์กฐํฉ(Combination) 3. ์ค๋ณต ์์ด(Permutation with repetition) 4. ์ค๋ณต ์กฐํฉ(Combination with repetition) 1. ์์ด(Permutation) ์์ด์ \(n\) ๊ฐ์ ๋ฐ์ดํฐ ์ค์์ \(r\) ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฝ์ ์ผ๋ ฌ๋ก ๋์ดํ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ก์ ์ํ์ ์ธ ๊ธฐํธ๋ก๋ \(_{n}P_{r}\) ์ ๊ฐ..
์๋ ํ์ธ์, ์ค๋์ ํ์ด์ฌ f-string ๋ฌธ๋ฒ์ ๋ํด ๊ฐ๋จํ๊ฒ ์์๋ณด๊ฒ ์ต๋๋ค. f-string ์ด๋? f-string๋ ์ต๊ทผ์ ๋์จ ๋ฌธ์์ด ํฌ๋งทํ ๊ตฌ๋ฌธ์ผ๋ก์ formatted string literals์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๊ธฐ์กด์ % ํฌ๋งทํ ์ด๋ format ๋ฌธ์์ด ๊ตฌ๋ฌธ์ ์ฌ์ ํ ๊ฐ๋ ์ฑ์ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. name = 'Tony Park' major = 'Computer Science' city = 'Seoul' message = 'Hi, this is %s. My major is %s and I\'m living in %s.' %(name, major, city) print(message) # Hi, this is Tony Park. My major is Computer Science and I'm li..