μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |
- Python
- μ€λ²μνλ§
- dataframe
- λΉ λ°μ΄ν°λΆμκΈ°μ¬
- μΈλμνλ§
- ν μ€νΈλΆμ
- λ°μ΄ν°λΆμμ€μ λ¬Έκ°
- ν¬λ‘€λ§
- opencv
- λ°μ΄ν°λΆμμ λ¬Έκ°
- λ 립νλ³Έ
- λ°μ΄ν°λΆμ
- ADP
- νμ΄μ¬
- λ°μ΄ν°λΆκ· ν
- LDA
- numpy
- PCA
- μλν΄λΌμ°λ
- ADsP
- μ£Όμ±λΆλΆμ
- Lambda
- iloc
- t-test
- datascience
- λΉ λ°μ΄ν°
- DBSCAN
- κ΅°μ§ν
- pandas
- λμνλ³Έ
Data Science LAB
[Python] νλ‘κ·Έλλ¨Έμ€ μ½λ©ν μ€νΈ μ°μ΅ level2 (νλ°° μμ) λ³Έλ¬Έ
[Python] νλ‘κ·Έλλ¨Έμ€ μ½λ©ν μ€νΈ μ°μ΅ level2 (νλ°° μμ)
γ γ γ γ 2022. 12. 26. 18:211. λ¬Έμ μ€λͺ
μμ¬λ νλ°°μμλ₯Ό νΈλμ μ£λ μΌμ ν©λλ€. μμ¬κ° μ€μ΄μΌ νλ νλ°°μμλ ν¬κΈ°κ° λͺ¨λ κ°μΌλ©° 1λ² μμλΆν° nλ² μμκΉμ§ λ²νΈκ° μ¦κ°νλ μμλλ‘ μ»¨ν μ΄λ 벨νΈμ μΌλ ¬λ‘ λμ¬ μμ¬μκ² μ λ¬λ©λλ€. 컨ν μ΄λ 벨νΈλ ν λ°©ν₯μΌλ‘λ§ μ§νμ΄ κ°λ₯ν΄μ 벨νΈμ λμΈ μμλλ‘(1λ² μμλΆν°) μμλ₯Ό λ΄λ¦΄ μ μμ΅λλ€. νμ§λ§ 컨ν μ΄λ 벨νΈμ λμΈ μμλλ‘ νλ°°μμλ₯Ό λ΄λ € λ°λ‘ νΈλμ μ£κ² λλ©΄ νλ°° κΈ°μ¬λμ΄ λ°°λ¬νλ μμμ νλ°°μμκ° μ€λ € μλ μμκ° λ§μ§ μμ λ°°λ¬μ μ°¨μ§μ΄ μκΉλλ€. λ°λΌμ νλ°° κΈ°μ¬λμ΄ λ―Έλ¦¬ μλ €μ€ μμμ λ§κ² μμ¬κ° νλ°°μμλ₯Ό μ€μ΄μΌ ν©λλ€.
λ§μ½ 컨ν μ΄λ 벨νΈμ 맨 μμ λμΈ μμκ° νμ¬ νΈλμ μ€μ΄μΌ νλ μμκ° μλλΌλ©΄ κ·Έ μμλ₯Ό νΈλμ μ€μ μμκ° λ λκΉμ§ μ μ λ€λ₯Έ κ³³μ 보κ΄ν΄μΌ ν©λλ€. νμ§λ§ κ³ κ°μ 물건μ ν¨λΆλ‘ λ μ λ μ μμ΄ λ³΄μ‘° 컨ν μ΄λ 벨νΈλ₯Ό μΆκ°λ‘ μ€μΉνμμ΅λλ€. 보쑰 컨ν μ΄λ 벨νΈλ μ λ€λ‘ μ΄λμ΄ κ°λ₯νμ§λ§ μ ꡬ μΈμ λ€λ₯Έ λ©΄μ΄ λ§ν μμ΄μ 맨 μμ μμλ§ λΊ μ μμ΅λλ€(μ¦, κ°μ₯ λ§μ§λ§μ 보쑰 컨ν μ΄λ 벨νΈμ 보κ΄ν μμλΆν° κΊΌλ΄κ² λ©λλ€). 보쑰 컨ν μ΄λ 벨νΈλ₯Ό μ΄μ©ν΄λ κΈ°μ¬λμ΄ μνλ μμλλ‘ μμλ₯Ό μ£μ§ λͺ» νλ€λ©΄, λ μ΄μ μμλ₯Ό μ£μ§ μμ΅λλ€.
μλ₯Ό λ€μ΄, μμ¬κ° 5κ°μ μμλ₯Ό μ€μ΄μΌ νλ©°, νλ°° κΈ°μ¬λμ΄ μλ €μ€ μμκ° κΈ°μ‘΄μ 컨ν μ΄λ 벨νΈμ λ€ λ²μ§Έ, μΈ λ²μ§Έ, 첫 λ²μ§Έ, λ λ²μ§Έ, λ€μ― λ²μ§Έ λμΈ νλ°°μμ μμμΈ κ²½μ°, μμ¬λ μ°μ 첫 λ²μ§Έ, λ λ²μ§Έ, μΈ λ²μ§Έ μμλ₯Ό 보쑰 컨ν μ΄λ 벨νΈμ 보κ΄ν©λλ€. κ·Έ ν λ€ λ²μ§Έ μμλ₯Ό νΈλμ μ£κ³ 보쑰 컨ν μ΄λ 벨νΈμμ μΈ λ²μ§Έ μμ λΉΌμ νΈλμμ£μ΅λλ€. λ€μμΌλ‘ 첫 λ²μ§Έ μμλ₯Ό μ€μ΄μΌ νμ§λ§ 보쑰 컨ν μ΄λ 벨νΈμμλ λ λ²μ§Έ μμλ₯Ό, κΈ°μ‘΄μ 컨ν μ΄λ 벨νΈμλ λ€μ― λ²μ§Έ μμλ₯Ό κΊΌλΌ μ μκΈ° λλ¬Έμ λμ΄μμ μμλ μ€μ μ μμ΅λλ€. λ°λΌμ νΈλμλ 2κ°μ μμλ§ μ€λ¦¬κ² λ©λλ€.
νλ°° κΈ°μ¬λμ΄ μνλ μμ μμλ₯Ό λνλ΄λ μ μ λ°°μ΄ orderκ° μ£Όμ΄μ‘μ λ, μμ¬κ° λͺ κ°μ μμλ₯Ό μ€μ μ μλμ§ return νλ solution ν¨μλ₯Ό μμ±νμΈμ.
2. μ ν μ¬ν
- 1 ≤ orderμ κΈΈμ΄ ≤ 1,000,000
- orderλ 1μ΄μ orderμ κΈΈμ΄ μ΄νμ λͺ¨λ μ μκ° νλ²μ© λ±μ₯ν©λλ€.
- order[i]λ κΈ°μ‘΄μ 컨ν μ΄λ 벨νΈμ order[i]λ²μ§Έ μμλ₯Ό i+1λ²μ§Έλ‘ νΈλμ μ€μ΄μΌ ν¨μ μλ―Έν©λλ€.
3. λ΄ νμ΄
def solution(order):
answer = 0
box = list(range(1,order[0]+1))
for idx,i in enumerate(order):
if len(box) == 0:
box.append(i)
if i == box[-1]:
answer += 1
box.pop()
elif i == order[idx-1]+1:
answer += 1
elif i < box[-1]:
return answer
else:
answer += 1
box.extend(list(range(max(order[:idx])+1, i)))
return answer
1. 첫λ²μ§Έ νλ°°λ λ°λμ νΈλμ μ€μ μ μμΌλ―λ‘ box 리μ€νΈμ 1λΆν° 첫λ²μ§Έ νλ°° λ²νΈκΉμ§ 리μ€νΈ μμ±
2. box listκ° λΉμ΄ μμΌλ©΄ μμ μΆκ°
3. κ°μ₯ λ§μ§λ§μΌλ‘ box listμ λ΄μ μμκ° iμ κ°μΌλ©΄ answer + 1
4. λλ order listμ λ΄κΈ΄ μμμ μ«μκ° μ°μμ μ΄λ©΄ answer + 1
5. box listμ λ§μ§λ§μ λ΄κΈ΄ μμκ° iλ³΄λ€ ν¬λ©΄ answer return (λμ΄μ νλ°°λ₯Ό μ€μ μ μκΈ° λλ¬Έ)
6. box listμ λ§μ§λ§μ λ΄κΈ΄ μμκ° iλ³΄λ€ μμΌλ©΄ μ΄ μ μ νλ°°λ₯Ό μ€μ κ°μ₯ ν° μ+1 λΆν° iμ κΉμ§ νλ°°λ₯Ό box listμ μΆκ°
4. λ€λ₯Έ μ¬λ νμ΄
def solution(order):
answer = 0
stacks = []
N = len(order)
i = 1
idx = 0
while i < N+1:
stacks.append(i)
while stacks[-1] == order[idx]:
idx += 1
stacks.pop()
if len(stacks) == 0:
break
i += 1
return idx