๋ชฉ๋กalgorithm (8)

suvera-dev ๐Ÿฅฆ

Algorithm) Dynamic programming

Dynamic programming(๋™์ ๊ณ„ํš๋ฒ•)์ด๋ž€ ? ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰์‹œ๊ฐ„ ํšจ์œจ์„ฑ์„ ๋น„์•ฝ์ ์œผ๋กœ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ• -> ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ตœ๋Œ€ํ•œ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘์„ฑ ! ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ : ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด - n ๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ = (n-1)๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ + (n-2)๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ - ๋‹จ, 1๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ = 1,2 ๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ = 1 # ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜ ์†Œ์Šค์ฝ”๋“œ def fibo(x): if x == 1 or x == 2: return 1 return fibo(x-1) + fibo(x-2) print(fibo(4)) -> But, ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋กœ f(n) ํ•จ์ˆ˜์—์„œ n์ด ์ปค์ง€๋ฉด ์ปค์งˆ์ˆ˜๋ก ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๊ธฐํ•˜..

Algorithm/CodingTest - Python 2022. 4. 9. 03:09
Algorithm) Binary Search

์ด์ง„ํƒ์ƒ‰์— ๋“ค์–ด๊ฐ€๊ธฐ์ „ ๊ฐ€์žฅ ๊ธฐ๋ณธ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ธ ์ˆœ์ฐจ ํƒ์ƒ‰์— ๋Œ€ํ•ด์„œ ์‚ด์ง ๋‹ค๋ฃจ๊ณ  ๊ฐ€๋ณด์Ÿˆ ! ์ˆœ์ฐจํƒ์ƒ‰(Sequential Search)์ด๋ž€ ? ๋ฆฌ์ŠคํŠธ ์•ˆ์— ์žˆ๋Š” ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์•ž์—์„œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• - ๋ฆฌ์ŠคํŠธ์— ํŠน์ • ๊ฐ’์˜ ์›์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ์ฒดํฌ - ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•์—์„œ ํŠน์ •ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์›์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” count() ๋ฉ”์„œ๋“œ์˜ ๋‚ด๋ถ€์—์„œ์˜ ์ˆœ์ฐจํƒ์ƒ‰ # ์ˆœ์ฐจํƒ์ƒ‰ ์†Œ์Šค์ฝ”๋“œ def sequential_search(n, target, array): # ๊ฐ ์›์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋ฉฐ for i in range(n): # ํ˜„์žฌ์˜ ์›์†Œ๊ฐ€ ์ฐพ๊ณ ์žํ•˜๋Š” ์›์†Œ์™€ ๋™์ผํ•œ ๊ฒฝ์šฐ if array[i] == target: return i + 1 # ํ˜„์žฌ์˜ ์œ„์น˜ ๋ฐ˜ํ™˜ . ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋‹ˆ๊นŒ 1๋”ํ•˜๊ธฐ ..

Algorithm/CodingTest - Python 2022. 4. 7. 10:36