์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- GCD
- SQL
- URLSession
- discardableResult
- BFS
- binarySearch
- SwiftUI ํํ ๋ฆฌ์ผ
- ํ๋ก๊ทธ๋๋จธ์ค
- SwiftUI
- 0์ด๋์ด์๋๊ธธ
- HAVIT
- ๊ณ ๋์ kit
- IOS
- SwiftUI Tutorials
- ๊ธฐ์ด๋ฌธ๋ฒ
- APPJAM
- DynamicProgramming
- dfs
- ์ด์งํ์
- ์ฐ์ํ์ค๋ถ๋ถ์์ด์ํฉ
- Swift
- concurrency
- GroupBy
- SOPT
- algoritm
- algorithm
- ๋์ ๊ณํ๋ฒ
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- duno
- Til
- Today
- Total
๋ชฉ๋กalgorithm (8)
suvera-dev ๐ฅฆ
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์ด ์ปค์ง๋ฉด ์ปค์ง์๋ก ์ํ ์๊ฐ์ด ๊ธฐํ..
ํ์ด์ฌ ์ด์ง ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ bisect_left(a,x) : ์ ๋ ฌ๋ ์์๋ฅผ ์ ์งํ๋ฉด์ ๋ฐฐ์ด a์ x๋ฅผ ์ฝ์ ํ ๊ฐ์ฅ ์ผ์ชฝ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ bisect_right(a,x) : ์ ๋ ฌ๋ ์์๋ฅผ ์ ์งํ๋ฉด์ ๋ฐฐ์ด a์ x๋ฅผ ์ฝ์ ํ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ from bisect import bisect_left, bisect_right => ๊ฐ์ด ํน์ ๋ฒ์์ ์ํ๋ ๋ฐ์ดํฐ ๊ฐ์ ๊ตฌํ๊ธฐ from bisect import bisect_left, bisect_right # ๊ฐ์ด left_value, right_value์ธ ๋ฐ์ดํฐ ๊ฐ์๋ฅผ ๋ฐํํ๋ ํจ์ def count_by_range(a, left_value, rignt_value): right_index = bisect_right(a, right_value) left_..
์ด์งํ์์ ๋ค์ด๊ฐ๊ธฐ์ ๊ฐ์ฅ ๊ธฐ๋ณธ ํ์ ๋ฐฉ๋ฒ์ธ ์์ฐจ ํ์์ ๋ํด์ ์ด์ง ๋ค๋ฃจ๊ณ ๊ฐ๋ณด์ ! ์์ฐจํ์(Sequential Search)์ด๋ ? ๋ฆฌ์คํธ ์์ ์๋ ํน์ ํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ์์์๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ์ฐจ๋ก๋๋ก ํ์ธํ๋ ๋ฐฉ๋ฒ - ๋ฆฌ์คํธ์ ํน์ ๊ฐ์ ์์๊ฐ ์๋์ง ์ฒดํฌ - ๋ฆฌ์คํธ ์๋ฃํ์์ ํน์ ํ ๊ฐ์ ๊ฐ์ง๋ ์์์ ๊ฐ์๋ฅผ ์ธ๋ count() ๋ฉ์๋์ ๋ด๋ถ์์์ ์์ฐจํ์ # ์์ฐจํ์ ์์ค์ฝ๋ def sequential_search(n, target, array): # ๊ฐ ์์๋ฅผ ํ๋์ฉ ํ์ธํ๋ฉฐ for i in range(n): # ํ์ฌ์ ์์๊ฐ ์ฐพ๊ณ ์ํ๋ ์์์ ๋์ผํ ๊ฒฝ์ฐ if array[i] == target: return i + 1 # ํ์ฌ์ ์์น ๋ฐํ . ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๋๊น 1๋ํ๊ธฐ ..
1. ์์์ ์๋๋ก ํ์ด์ฌ ๊ธฐ๋ณธ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ n = int(input()) array = [] for i in range(n): array.append(int(input())) array = sorted(array, reverse= True) for i in array: print(i, end = ' ') 2. ์ฑ์ ์ด ๋ฎ์ ์์๋ก ํ์ ์ถ๋ ฅํ๊ธฐ ํ์ด์ฌ ๊ธฐ๋ณธ ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํํ ์ฌ์ฉ ์ ์๋๋ก ์ ๋ ฌํ๊ณ ์ด๋ฆ๋ง ์ถ๋ ฅ n = int(input()) array = [] for i in range(n): input_data = input().split() # ์ด๋ฆ์ ๋ฌธ์์ด ๊ทธ๋๋ก, ์ ์๋ ์ ์ํ์ผ๋ก ๋ณํํ์ฌ ์ ์ฅ array.append((input_data[0], int(input_data[1]))) ..