๐Ÿ’ป ์ปดํ“จํ„ฐ

๊ณ ์ „์  ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•๊ณผ ํ•œ๊ณ„ ์ผ๋ฐ˜์ ์ธ ๊ณผ์ • ์•”ํ˜ธํ™” ๋ณตํ˜ธํ™” ์˜ˆ Caesar Cipher ์˜๋ฌธ๊ณผ ์ˆซ์ž๋ฅผ ์ผ๋Œ€์ผ ๋Œ€์‘ ํ‰๋ฌธ์— ๋“ฑ์žฅํ•˜๋Š” ๋ชจ๋“  ์•ŒํŒŒ๋ฒณ์„ ๋™์ผํ•œ ์นธ์ˆ˜๋งŒํผ ๋ฏธ๋Š” ๋ฐฉ์‹์œผ๋กœ ์•”ํ˜ธํ™” ์•ŒํŒŒ๋ฒณ์ด ์ด 26์ข…๋ฅ˜์ด๋ฏ€๋กœ, 26์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋งŒ์„ ์ƒ๊ฐ Affine Cipher ํ‰๋ฌธ(Plaintext-P)์™€ ์•”ํ˜ธ๋ฌธ(Ciphertext-C)์— ๋Œ€ํ•˜์—ฌ ์•”ํ˜ธํ™” C = K_1 P + K_2 (mod 26) k1๊ณผ k2๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐ ๊ณ ์ „์  ์•”ํ˜ธ ์ฒด๊ณ„์— ๋Œ€ํ•œ Brute-Force ๊ณต๊ฒฉ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž…๊ณต๊ฒฉ์œผ๋กœ ๋ฌด๋ ฅํ™”๋  ์ˆ˜ ์žˆ์Œ ์†Œ์ธ์ˆ˜๋ถ„ํ•ด ๊ธฐ๋ฐ˜ ์•”ํ˜ธ ์ฒด๊ณ„ Euler Phi Function ์ž์—ฐ์ˆ˜ n์— ๋Œ€ํ•ด n๋ณด๋‹ค ์ž‘์œผ๋ฉด์„œ n๊ณผ ์„œ๋กœ์†Œ์ธ ์ž์—ฐ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ํŒŒ์ด(n)์œผ๋กœ ์ •์˜ ํŒŒ์ด(p) = p-1์ž„์€ ์ž๋ช… ⇒ ์„ฑ์งˆ ์ž์—ฐ์ˆ˜ m๊ณผ n์ด..
๋™์ ๊ณ„ํš์˜ ์ดํ•ด์™€ ๊ตฌํ˜„ Dynamic Programing ๋ณต์žกํ•œ ๊ผด์„ ๊ฐ€์ง„ ๋ฌธ์ œ๋ฅผ ๋ณด๋‹ค ๋‹จ์ˆœํ•œ ์—ฌ๋กœ ๋ฌธ์ œ๋กœ ์ชผ๊ฐœ์–ด ํ•ด๊ฒฐ ‘๊ณผ๊ฑฐ์— ๊ณ„์‚ฐํ•˜์˜€๋˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธ’ ‘์ ํ™”์‹์„ ์„ธ์›Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”’ ํ˜•ํƒœ๋กœ ํ™œ์šฉ ex - a(n+1) = a(n) + 2 ์™€ ๊ฐ™์€ ์‹ ⇒ ๋ถˆํ•„์š”ํ•œ ๋ฐ˜๋ณต์ ์ธ ํ–‰์œ„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ ( Memoization or Tabulation - ์ค‘๊ฐ„๊ฐ’ ๊ธฐ๋ก ) Memoization ์˜ˆ) ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด def ex_func(N): if (fibo_list[N] != -1): return fibo_list[N] else: fibo_list[N] = ex_func(N-1) + ex_func(N-2) return fibo_list[N] N = int(input()) fibo_list = [-1 for..
์žฌ๊ท€์  ์ ‘๊ทผ์˜ ์›๋ฆฌ์™€ ์‹ค์ œ Recursion ์žฌ๊ท€์  ํ˜ธ์ถœ ๋ถ„ํ™œ์ •๋ณต ํŒจ๋Ÿฌ๋‹ค์ž„ ๊ตฌํ˜„์— ๋งŽ์ด ์“ฐ์ž„ bottom-up๊ณผ top-down์œผ๋กœ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ, ์žฌ๊ท€๋Š” top-down์— ํ•ด๋‹น ๋ถ„ํ™œ์ •๋ณต์˜ ์ดํ•ด ํ’€๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ž‘์€ ํฌ๊ธฐ๋กœ ๋ถ„ํ™œ ์ถฉ๋ถ„ํžˆ ๋ฌธ์ œ๊ฐ€ ์ž‘์•„์ง„ ๊ฒฝ์šฐ → ์ •๋ณต ์ž‘์€ ๊ฐœ๋ณ„ ๋ฌธ์ œ๋“ค์— ๋Œ€ํ•œ ํ•ด๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ๋“ญํ•˜์—ฌ ์ตœ์ข… ํ•ด ๋„์ถœ Sequential Search - ๋ฌด๋Œ€๋ฝ€ Binary Search - ‘๋ถ„ํ™œ์ •๋ณต ํŒจ๋Ÿฌ๋‹ค์ž„’์— ์†ํ•จ n → logn์œผ๋กœ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Œ (์ง€์ˆ˜๋ฅผ ์ชผ๊ฐœ๋ฉด์„œ) ๋ถ„ํ™œ์ •๋ณต์„ ์ด์šฉํ•œ ์ •๋ ฌ Merge Sort ์ˆ˜์—ด์ด ์ฃผ์–ด์งˆ ๋•Œ, ์ˆ˜์—ด์„ ์ ˆ๋ฐ˜์œผ๋กœ ์ชผ๊ฐœ๋Š” ๊ณผ์ • ๋ฐ˜๋ณต ๋”์ด์ƒ ์ชผ๊ฐค ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, ์ด๋ฏธ ์ชผ๊ฐœ์ง„ ์ˆ˜์—ด์„ ์ˆœ์„œ์— ๋งž์ถฐ ํ•ฉ์น˜๋Š” ๊ณผ์ • ์ˆ˜ํ–‰ ๊ณ„์† ์ชผ๊ฐœ๋Š” ๊ณผ์ • ์ง„ํ–‰ ์ดํ›„ ์ˆœ์„œ๋ฅผ ๋งž์ถ”๋ฉฐ ..
์ •๋ ฌ์˜ ์„ฑ๋Šฅ๊ณผ ์‹œ๊ฐ„๋ณต์žก๋„ Heap sort Max Heap ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉ ๋น„์–ด์žˆ๋Š” Heap์— ์ฃผ์–ด์ง„ ์›์†Œ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์‚ฝ์ž…, ๊ทธ๋ž˜๋„ Heap ์„ฑ์งˆ์ด ์œ ์ง€๋˜๋„๋ก Heap ์ตœ์ƒ๋‹จ์—๋Š” ์ตœ๋Œ“๊ฐ’์ด ์กด์žฌํ•จ์ด ๋ณด์žฅ, ์ˆ˜์—ด์˜ ๋งจ ๋์— Heap ์ตœ์ƒ๋‹จ ๊ฐ’์„ ์œ„์น˜ Heap ์ตœ์ƒ๋‹จ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•œ ํ›„, Heap ์„ฑ์งˆ์„ ์œ ์ง€ํ•˜๋ฉฐ ๋™์ผํ•œ ๊ณผ์ • ๋ฐ˜๋ณต ์ฆ‰, N๊ฐœ ์›์†Œ ์‚ฝ์ž… - Heap์ด ๋‹ค์‹œ ๋นŒ ๋•Œ๊นŒ์ง€ ๋ฐ์ดํ„ฐ N๊ฐœ ์ œ๊ฑฐ (nlogn - ๋…ธ๋“œ์˜ ๋†’์ด๊ฐ€ ์ค‘์š”ํ•จ) Heap ๊ตฌ์„ฑํ•˜๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„ - log1 ~ logn ์ œ๊ฑฐํ•˜๋ฉฐ ์ •๋ ฌํ•˜๋Š” ์‹œ๊ฐ„๋ณต์žก๋„ -logn ~ log1 → log(n!) ๋น… O ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด์„œ T(n)์ด nlogn๋ณด๋‹ค๋Š” ์ž‘๋‹ค๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์Œ ๋น… ์˜ค๋ฉ”๊ฐ€ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด์„œ T(n)์ด nlogn๋ณด๋‹ค๋Š” ํฌ๋‹ค๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์Œ ๋น… O..
์ˆœ์ฐจ ํƒ์ƒ‰๊ณผ ์ด์ง„ ํƒ์ƒ‰ ์ˆœ์ฐจํƒ์ƒ‰ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ํ™•์ธ ์ด์ง„ํƒ์ƒ‰ (์ •๋ ฌ์ด ์ด๋ฏธ ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ) ์ค‘์•™์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ˜์œผ๋กœ ์ชผ๊ฐœ์–ด ๋Œ€์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์›ํ•˜๋Š” ์ˆ˜๊ฐ€ ์†ํ•œ ๋ถ€๋ถ„์„ ํ™•์ธ Log_2 (n)์˜ ์ˆ˜๋ฅผ ๊ฐ€์ง nubers = [15, 19, 22, 33, 44, 55, 66, 77, 88, 99] target = 33 left = 0 right = len(nubers) - 1 while (1): mid = (left + right) // 2 if nubers[mid] == target: print("find it") break elif nubers[mid] > target: right = mid - 1 else: left = mid + 1 if left > right: print("not find")..
์ด ์‹œ๋ฆฌ์ฆˆ๋Š” ๊ณ ๋ ค๋Œ€ํ•™๊ต ์ •๋ณด๋Œ€ํ•™ '์œ ์šฉ์žฌ ๊ต์ˆ˜๋‹˜'์˜ ์ˆ˜์—…์„ ๋“ฃ๊ณ  ์ •๋ฆฌํ•œ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ๊ต‰์žฅํžˆ ์กด๊ฒฝํ•˜๋Š” ๋ถ„์ด๋ฉฐ, ๋” ์•Œ์•„๋ณด๊ณ  ์‹ถ์œผ์‹  ๋ถ„์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. https://yooy.mystrikingly.com/ ์‹œ๊ฐ„๋ณต์žก๋„, ๊ณต๊ฐ„๋ณต์žก๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ๊ณ„์  ์ ˆ์ฐจ ํ˜น์€ ๋ฐฉ๋ฒ• ๋ชจํ˜ธ์„ฑ์ด ์—†๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ข…๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๋Š” ์ ˆ์ฐจ์˜ ์ง‘ํ•ฉ ์‹œ๊ฐ„๋ณต์žก๋„ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด ์†Œ์š”ํ•˜๋Š” ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐœ๋… ์‹œ๊ฐ„๋ณต์žก๋„(TC) = (์ปดํŒŒ์ผ ์‹œ๊ฐ„) c + (์‹คํ–‰ ์‹œ๊ฐ„) T(n) ํ”„๋กœ๊ทธ๋žจ ๋ถ„์„์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ‘์‹คํ–‰ ์‹œ๊ฐ„’์ด ‘์ปดํŒŒ์ผ ์‹œ๊ฐ„’๋ณด๋‹ค ์ค‘์š” ๊ณต๊ฐ„๋ณต์žก๋„ ๋Œ๋ฆฌ๋Š”๋ฐ ํ•„์š”ํ•œ ์ž์›(๋ฆฌ์†Œ์Šค) ์‹œ๊ฐ„ > ๊ณต๊ฐ„ (์ค‘์š”์„ฑ) ‘์—ฐ์‚ฐ ํšŸ์ˆ˜’๊ฐ€ ์ค‘์š” ๋ฐ˜๋ณต์ด ์•„๋‹Œ ๋‹จ์ˆœ ๋ณ€์ˆ˜ ์„ ์–ธ ๋“ฑ์€ ๋ฌด์‹œ ์‹ค์งˆ์ ์œผ๋กœ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ ..
KORLEGEND
'๐Ÿ’ป ์ปดํ“จํ„ฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)