λ°°μ΄
λ°°μ΄
λ°°μ΄ : μΌμ ν μλ£νμ λ³μλ€μ νλμ μ΄λ¦μΌλ‘ μ΄κ±°νμ¬ μ¬μ©νλ μλ£κ΅¬μ‘°
μλμ μλ 6κ°μ λ³μλ₯Ό μ¬μ©ν΄μΌ νλ κ²½μ°, μ΄λ₯Ό λ°°μ΄λ‘ λ°κΎΈμ΄ μ¬μ©νλ κ²μ΄λ€.
Num0 = 0
Num1 = 1
Num2 = 2
Num3 = 3
Num4 = 4
Num5 = 5
Num = [0, 1, 2, 3, 4, 5]
λ°°μ΄μ νμμ±
νλ‘κ·Έλ¨ λ΄μμ μ¬λ¬ κ°μ λ³μκ° νμν λ, μΌμΌμ΄ λ€λ₯Έ λ³μλͺ μ μ΄μ©νμ¬ μλ£μ μ κ·Όνλ κ²μ λ§€μ° λΉν¨μ¨μ μΌ μ μλ€.
λ°°μ΄μ μ¬μ©νλ©΄ νλμ μ μΈμ ν΅ν΄μ λ μ΄μμ λ³μλ₯Ό μ μΈν μ μλ€.
λ¨μν λ€μμ λ³μλ₯Ό μ μΈμ μλ―Ένλ κ²μ΄ μλλΌ, λ€μμ λ³μλ‘λ νκΈ° νλ μμ μ λ°°μ΄μ νμ©ν΄ μ½κ² ν μ μλ€.
1μ°¨μ λ°°μ΄
1μ°¨μ λ°°μ΄μ μ μΈ
λ³λμ μ μΈ λ°©λ²μ΄ μμΌλ©΄ λ³μμ μ²μ κ°μ ν λΉν λ μμ±
μ΄λ¦ : νλ‘κ·Έλ¨μμ μ¬μ©ν λ°°μ΄μ μ΄λ¦
Arr = list()
Arr = ()
(1μ°¨μ λ°°μ΄ μ μΈμ μ)
Arr = [1, 2, 3]
Arr = [0] * 10
1μ°¨μ λ°°μ΄μ μ κ·Ό
Arr[0] = 10
: λ°°μ΄ Arrμ 0λ² μμμ 10μ μ μ₯
Arr[idx] = 20
: λ°°μ΄ Arrμ idxλ² μμμ 20μ μ μ₯
μκ³ λ¦¬μ¦μ μ±λ₯ λΆμ νμ
- λ§μ λ¬Έμ μμ μ±λ₯ λΆμμ κΈ°μ€μΌλ‘ μκ³ λ¦¬μ¦μ μμ λμ λΉκ΅νλ€.
μκ° λ³΅μ‘λ(Time Complexity)
μΈ‘μ λ°©λ²
- μ€μ 걸리λ μκ°μ μΈ‘μ
- μ€νλλ λͺ λ Ήλ¬Έμ κ°μλ₯Ό κ³μ°
μκ° λ³΅μ‘λ β λΉ -μ€(O) νκΈ°λ²
λΉ -μ€ νκΈ°λ² (Big-Oh Notation)
μκ° λ³΅μ‘λ ν¨μ μ€μμ κ°μ₯ ν° μν₯λ ₯μ μ£Όλ nμ λν νλ§μ νμ
κ³μ(Coefficient)λ μλ΅νμ¬ νμ
ex)
O(3n + 2) = O(3n) = O(n)
O(2nΒ² + 10n + 100) = O(nΒ²)
O(4) = O(1)
: μ΅κ³ μ°¨νλ§ μ ν, κ³μ μ κ±°
nκ°μ λ°μ΄ν°λ₯Ό μ λ ₯ λ°μ μ μ₯ν ν κ° λ°μ΄ν°μ 1μ© μ¦κ°μν¨ ν κ° λ°μ΄ν°λ₯Ό νλ©΄μ μΆλ ₯νλ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λ? β O(n)
2μ°¨μ λ°°μ΄
2μ°¨μ λ°°μ΄μ μ μΈ
1μ°¨μ List λ₯Ό λ¬Άμ΄λμ List
2μ°¨μ μ΄μμ λ€μ°¨μ Listλ μ°¨μμ λ°λΌ Indexλ₯Ό μ μΈ
2μ°¨μ Listμ μ μΈ : μΈλ‘κΈΈμ΄(νμ κ°μ), κ°λ‘κΈΈμ΄(μ΄μ κ°μ)λ₯Ό νμλ‘ ν¨
Python μμλ λ°μ΄ν° μ΄κΈ°νλ₯Ό ν΅ν΄ λ³μμ μΈκ³Ό μ΄κΈ°νκ° κ°λ₯ν¨
arr=[[0,1,2,3],[4,5,6,7]]
(2ν 4μ΄μ 2μ°¨μ List)
2μ°¨μ λ°°μ΄μ μ κ·Ό
λ°°μ΄ μν
n x m λ°°μ΄μ n * m κ°μ λͺ¨λ μμλ₯Ό λΉ μ§μμ΄ μ‘°μ¬νλ λ°©λ²
ν μ°μ μν
# i νμ μ’ν
# j μ΄μ μ’ν
for i in range(n):
for j in range(m):
Array[i][j] # νμν μ°μ° μν
μ΄ μ°μ μν
# i νμ μ’ν
# j μ΄μ μ’ν
for j in range(n):
for i in range(m):
Array[i][j] # νμν μ°μ° μν
μ§κ·Έμ¬κ·Έ μν
# i νμ μ’ν
# j μ΄μ μ’ν
for i in range(n):
for j in range(m):
Array[i][j + (m-1-2*j) * (i%2)] # νμν μ°μ° μν
λΈνλ₯Ό μ΄μ©ν 2μ°¨ λ°°μ΄ νμ
: 2μ°¨ λ°°μ΄μ ν μ’νμμ 4λ°©ν₯μ μΈμ λ°°μ΄ μμλ₯Ό νμνλ λ°©λ²
arr[0...N-1][0...N-1] # NxN λ°°μ΄
di[] <- [0, 0, -1, 1] # μ’μ°μν
dj[] <- [-1, 1, 0, 0]
for i in range(N): # 1 -> N-1
for j in range(M): # 1 -> N-2 :
for k in range(4):
ni = i + di[k]
nj = j + dj[k]
if 0 <= ni < N and 0 <= nj < N #μ ν¨ν μΈλ±μ€λ©΄
test(arr[ni][nj])
# 1μΉΈμ΄ μλ, dμΉΈ μ΄λνκ³ μΆμΌλ©΄
# ni = i + di[k] * d
# nj = j + dj[k] * d
μ μΉνλ ¬
# i : νμ μ’ν, len(arr)
# j : μ΄μ μ’ν, len(arr[0])
arr = [[1, 2, 3],[4,5,6],[7,8,9]] # 3 * 3 νλ ¬
for i in range(3):
for j in range(3):
if i < g :
arr[i][j], arr[j][i] = arr[j][i], arr[i][j]
'πΆ Programming > Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
5. Search κ²μ (0) | 2022.10.19 |
---|---|
4. Array Extra λ°°μ΄ (0) | 2022.10.15 |
3. Sort μ λ ¬ (0) | 2022.10.02 |
1. Algorithm μκ³ λ¦¬μ¦ (4) | 2022.09.29 |