π μκ³ λ¦¬μ¦ νλ©° python μμ© λ° κΈ°μ΅νκΈ°
result = [] temp = [1, 2, 3, 4, 5] if result[-1] == temp.pop() # μ΄ μνμμλ resultκ° λΉμ΄μκΈ° λλ¬Έμ indexκ° μ‘΄μ¬νμ§ μμ Error λ°μ ------------------------------------------ if result[-1:] == [temp.pop()] # μ¬λΌμ΄μ±μ λ²μ λ°μ index μ κ·Όμ΄ μλ¬κ° λ°μνμ§ μκΈ° λλ¬Έμ # μμ κ°μ λ°©μμΌλ‘ λΉ listλ₯Ό λ§λ€μ΄ μ£Όλ©° λΉκ΅νλ€λ©΄ # result = [temp[-1]] μ κ°μ μμΌλ‘ κ΅³μ΄ listλ₯Ό μ΄κΈ°ν ν νμκ° μλ€
π μ΄μ TILκ³Ό WIL μμ νλ‘κ·Έλλ¨Έμ€ 10νμ΄μ§ κΉμ§ νΌλ€κ³ νμ§λ§ μκ°ν΄λ³΄λ λ무 λΉν¨μ¨ μ μΈ κ² κ°μ μ΅μ’ λͺ©νμΈ μ½λ©ν μ€νΈμ μ΅μ νλ μ μλλ‘ μΌλ¨ 곡λΆνλ €κ³ νλ€.
κ°μ₯ κΈ°λ³Έμ΄ λλ©° λ§μ λ¬Έμ κ° λμ€λ μ€ν/ν, μ λ ¬, μμ νμ, ν΄μ, DFS/BFS, μ΄λΆνμ μμ£Όλ‘ λ¬Έμ λ₯Ό νλ©° μ£Όμ ν λ λ¬Έμ μ© Greedy, Dynamic Programming, GraphκΉμ§ νλ €κ³ νλ€.
μ΄λ° λ°©μμΌλ‘ νλ€λ³΄λ©΄ λ§μ λ¬Έμ λ₯Ό νΈλκ²μ λΉμ°ν κ²μ΄κΈ° λλ¬Έμ ν° λͺ©μ μ νλ‘κ·Έλλ¨Έμ€ λ¬Έμ 5λ 벨μ μ μΈν λͺ¨λ λ¬Έμ λ₯Ό νΈλκ², κ·Έ λͺ©μ μ ν¨μ¨μ μΌλ‘ μ±μ νλ©° μ΄λ£¨κΈ° μν΄ λ¬Έμ λ₯Ό μ νλ³λ‘ νλ©° μ 리λ₯Ό ν΄λκ°λ©° νΈλκ².
νλ‘κ·Έλλ¨Έμ€ μ νλ³ λ¬Έμ λ₯Ό 보면 κ° μ ν λ¬Έμ λ€μ 1~3 λ¬Έμ μ© κΉμ§(?) 거리며 νμλ€.
μ΄μ ν΄λΉ μ ν λ¬Έμ λ₯Ό μλ²½νκ² νλνκ³ λΆμ‘±νλ©΄ λ νΈλ λ°©ν₯μΌλ‘ μ§ννλ €κ³ νλ€.λν λ¬Έμ λ₯Ό νΌ ν λ λμκ²μ΄ μλ κ³ λ―Όνλ μκ°μ μ’ λ κ°μ§λ €κ³ νλ€.
λ€μ νμ΄λ³΄λ κ²μ λ€ π
π μ¬λ°λ₯Έ κ΄νΈ Level2 - μ€νμ κΈ°λ³Έμ€μ κΈ°λ³Έμ΄ λλ λ¬Έμ return λΆλΆμ μ’ λ μ΄μκ² νννμλ€.
def solution(ss): result = [] for s in ss: if s == '(': result.append(s) else: if result == []: return False result.pop() return result == []
π κΈ°λ₯κ°λ° Level2
- μ€νμ μ¬μ©νμ§ μμ 첫 νμ΄
def solution(progresses, speeds): temp, result = [], [] for i in range(len(progresses)): success, cnt = progresses[i], 0 while success < 100: success += speeds[i] cnt += 1 temp.append(cnt) build, MAX = 0, temp[0] for te in temp: if te <= MAX: build += 1 continue MAX = te result.append(build) build = 1 if build != 0: result.append(build) return result
- λ€λ₯Έ μ¬λμ νμ΄λ₯Ό μ°Έκ³ νμ¬ λ€μ νμ΄λ³Έ νμ΄ (μ€ν μ¬μ©)
import math def solution(progresses, speeds): result, stack = [], [] cnt = 0 for pr, sp in zip(progresses, speeds): temp = math.ceil((100 - pr) / sp) if not stack or stack[-1][0] < temp: stack.append([temp, 1]) else: stack[-1][1] += 1 return [x[1] for x in stack]
πμΌλ¨ (100 - pr) / sp λ μ‘°κΈλ§ μκ°νλ©΄ λ μ¬λ¦΄ μ μμλ μμμΈλ° κ΅³μ΄ while λ¬Έμ μ¬μ©νμ¬ μκ° λ³΅μ‘λλ₯Ό n^2 μΌλ‘ λ§λ κ²μ μμ½λ€ γ
zip μ μ¬μ©ν κΉ νμ§λ§ μΌλ¨ νμ΄λ³΄μλ λ§μμΌλ‘ 첫 νμ΄ λ°©μμΌλ‘ νΌ κ²μ΄κ³ ννΈλ₯Ό μ»κ³ λλ¦ κΉλνκ² νμ΄λ₯Ό ν΄λ³΄μλ€.
ν κ°μ§ μκ°μ μ½λ§€μ΄μ§ λ§κ³ μ¬λ¬κ°μ§ λ°©λ©΄μΌλ‘ μκ°νμ¬ νμ΄λ³΄μ