์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- DynamicProgramming
- SOPT
- SwiftUI ํํ ๋ฆฌ์ผ
- duno
- algorithm
- binarySearch
- Swift
- IOS
- ๊ธฐ์ด๋ฌธ๋ฒ
- discardableResult
- ์ด์งํ์
- SwiftUI Tutorials
- concurrency
- GCD
- ๋์ ๊ณํ๋ฒ
- BFS
- ์ฐ์ํ์ค๋ถ๋ถ์์ด์ํฉ
- Til
- ํ๋ก๊ทธ๋๋จธ์ค
- APPJAM
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- GroupBy
- HAVIT
- SQL
- dfs
- ๊ณ ๋์ kit
- 0์ด๋์ด์๋๊ธธ
- algoritm
- URLSession
- SwiftUI
- 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]))) ..