์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- discardableResult
- duno
- SwiftUI Tutorials
- GCD
- ํ๋ก๊ทธ๋๋จธ์ค
- SOPT
- URLSession
- ๋์ ๊ณํ๋ฒ
- SQL
- SwiftUI
- DynamicProgramming
- ์ฐ์ํ์ค๋ถ๋ถ์์ด์ํฉ
- Swift
- BFS
- dfs
- Til
- algorithm
- 0์ด๋์ด์๋๊ธธ
- ์ด์งํ์
- SwiftUI ํํ ๋ฆฌ์ผ
- ๊ธฐ์ด๋ฌธ๋ฒ
- IOS
- algoritm
- ๊ณ ๋์ kit
- HAVIT
- binarySearch
- GroupBy
- concurrency
- APPJAM
- Today
- Total
๋ชฉ๋กAlgorithm/CodingTest - Python (12)
suvera-dev ๐ฅฆ
1. 1๋ก ๋ง๋ค๊ธฐ ์ ์ X๊ฐ ์ฃผ์ด์ง ๋ ์ ์X์ ์ฌ์ฉํ ์ ์๋ ์ฐ์ฐ์ ๋ค์๊ณผ ๊ฐ์ด 4๊ฐ์ง ์ด๋ค. 1) X๊ฐ 5๋ก ๋๋์ด๋จ์ด์ง๋ฉด, 5๋ก ๋๋๋ค. 2) X๊ฐ 3์ผ๋ก ๋๋์ด๋จ์ด์ง๋ฉด, 3์ผ๋ก ๋๋๋ค. 3) X๊ฐ 2๋ก ๋๋์ด ๋จ์ด์ง๋ฉด, 2๋ก ๋๋๋ค. 4) X์์ 1์ ๋บ๋ค. ์ ์ X๊ฐ ์ฃผ์ด์ก์ ๋, ์ฐ์ฐ 4๊ฐ๋ฅผ ์ ์ ํ ์ฌ์ฉํด์ 1์ ๋ง๋ค๋ ค๊ณ ํ๋ค. ์ฐ์ฐ์ ์ฌ์ฉํ๋ ํ์์ ์ต์๊ฐ์ ์ถ๋ ฅํ์ธ์ ๋ฌธ์ ํ์ด ๋ต์ x = int(input()) # DP ํ ์ด๋ธ ์ด๊ธฐํ d = [0] * 30001 # ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ์งํ - ๋ณดํ ์ for i in range(2, x+1): # ํ์ฌ์ ์์์ 1์ ๋นผ๋ ๊ฒฝ์ฐ d[i] = d[i-1] + 1 # ํ์ฌ์ ์๊ฐ 2๋ก ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ if i % 2 == 0: d[i] =..
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๋ํ๊ธฐ ..