#체μ‘볡 #42862 # lv1
λ¬Έμ
μ μ¬μκ°μ λλμ΄ λ€μ΄, μΌλΆ νμμ΄ μ²΄μ‘볡μ λλλΉνμ΅λλ€. λ€νν μ¬λ² 체μ‘λ³΅μ΄ μλ νμμ΄ μ΄λ€μκ² μ²΄μ‘볡μ λΉλ €μ£Όλ € ν©λλ€. νμλ€μ λ²νΈλ 체격 μμΌλ‘ λ§€κ²¨μ Έ μμ΄, λ°λ‘ μλ²νΈμ νμμ΄λ λ°λ‘ λ·λ²νΈμ νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€. μλ₯Ό λ€μ΄, 4λ² νμμ 3λ² νμμ΄λ 5λ² νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€. 체μ‘λ³΅μ΄ μμΌλ©΄ μμ
μ λ€μ μ μκΈ° λλ¬Έμ 체μ‘볡μ μ μ ν λΉλ € μ΅λν λ§μ νμμ΄ μ²΄μ‘μμ
μ λ€μ΄μΌ ν©λλ€.
μ 체 νμμ μ n, 체μ‘볡μ λλλΉν νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ lost, μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ reserveκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, 체μ‘μμ
μ λ€μ μ μλ νμμ μ΅λκ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
- μ 체 νμμ μλ 2λͺ μ΄μ 30λͺ μ΄νμ λλ€.
- 체μ‘볡μ λλλΉν νμμ μλ 1λͺ μ΄μ nλͺ μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
- μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμμ μλ 1λͺ μ΄μ nλͺ μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
- μ¬λ² 체μ‘λ³΅μ΄ μλ νμλ§ λ€λ₯Έ νμμκ² μ²΄μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
- μ¬λ² 체μ‘볡μ κ°μ Έμ¨ νμμ΄ μ²΄μ‘볡μ λλλΉνμ μ μμ΅λλ€. μ΄λ μ΄ νμμ 체μ‘볡μ νλλ§ λλλΉνλ€κ³ κ°μ νλ©°, λ¨μ 체μ‘λ³΅μ΄ νλμ΄κΈ°μ λ€λ₯Έ νμμκ²λ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
κ²°κ³Ό μμ
+) ν μ€νΈ μΌμ΄μ€ λͺ κ°μ§λ₯Ό μΆκ°νλ€.
μ²μ λ¬Έμ λ₯Ό 보μλ§μ λ μκ°μ lostμ λ€μ΄μλ λ²νΈμ νμ μ λ€λ‘ λ€ μ¬λ²μ κ°κ³ μμΌλ©΄ μ΄λ‘νμ§? μλ€. λ§μ½ count += 1 μ μ°λ©΄μ κ°μλ₯Ό λνλ€λ³΄λ©΄ μ€λ³΅λλ κ²½μ°κ° μκΈΈ κ² κ°μ λ°λ‘ μ€λ³΅ μ«μλ₯Ό μ§μμ€μΌκ² λ€ μκ°νλ©° λ¬Έμ λ‘μ§μ μκ°ν΄λ΄€λ€.
# λ¬Έμ μ€λͺ
# νμλ€μ λ²νΈ: 체격 μ(λ°λ‘ μ or λ€ μΈλ±μ€μλ§ κ°λ₯)
# ex) reserve = [4], lost = [3] : [4] νν
λ λ λ²μ΄ μκ³ [3]μ μμΌλ―λ‘, [4]κ° [3]μκ² ν λ²μ μ€.
# μ 체 νμ μ : n , λλ λΉν νμ λ²νΈ : lost list, μ¬λ² νμ : reserve
# reserve[i] - 1 == lost[j] or reserve[i] + 1 == lost[j]
# count += 1
# count = n - len(lost)
# lost μμ λ²νΈ +- 1μ΄ reserveμ μλκ°?
# μλ€λ©΄, count += 1 νκ³ lost μμ/reserve μμ μμ . lost κΈΈμ΄κ° 0μ΄ λλ©΄ break
# lost μ κΈΈμ΄λ₯Ό λ¨Όμ ?
# μμ΄λ²λ Έμ§λ§ μ¬λ²μ΄ μλ μνλ κ°μ -> μ€λ³΅ μμ μ κ±° ν λ€μ 리μ€νΈ λ°λ³΅
κ·Όλ° remove ν¨μλ₯Ό μ°λ©΄μ μ€λ³΅λ μμμ κ°μλ₯Ό μ κ±±μ μ ν νμκ° μμμ κΉ¨λ«κ³ , μ λ€λ‘ -1, +1 ν μμκ° reserveμ μμΌλ©΄ reserveμμ ν΄λΉ νμ(λ²νΈ)λ₯Ό μ§μμ£Όλ©΄ λ¨μ μκ² λμλ€. κ·Έλ¦¬κ³ countλ κ·Έλλ‘ +1!
# νμ΄
# 1 λ²μ§Έ νμ΄
def solution(n, lost, reserve):
new_lost = []
# lost.sort()
# reserve.sort()
for i in lost:
if i in reserve: # lost = [3, 4, 5], reserve = [3, 4, 6] μΈ μΌμ΄μ€ (3, 4λ μ¬λ²μ΄ μμΌλ―λ‘ μ μΈ)
reserve.remove(i)
else:
new_lost.append(i) # λ§μ½ iκ° reserveμ μμΌλ©΄ new_lostμ ν λΉ.
lost = new_lost # κ΅³μ΄ μν΄μ€λ λκΈ΄ νμ§λ§, λ©λͺ¨λ¦¬ ν¨μ¨μ lostμ μ¬ν λΉν΄μ£Όλ κ²μ΄ λμ λ―νλ€.
count = n - len(lost)
for i in lost:
if i-1 in reserve: # reserveμ i-1μ΄ μμΌλ©΄,
count += 1 # κ°μ += 1
reserve.remove(i-1) # κ°μλ₯Ό λν΄μ€ λ€, μ€λ³΅μ μμ κ³ μ remove ν¨μ μ€ν
elif i+1 in reserve: # λ° μ‘°κ±΄λ λ§μ°¬κ°μ§
count += 1
reserve.remove(i+1)
else:
pass
return count # μ΅μ’
countμ κ°μλ₯Ό return
> λ‘μ§μ λ¬Έμ κ° μλ κ±° κ°μ§ μμλ°... κ³ λ―Ό λμ μ½ν μ°μ΅ ννΈ λͺ¨μμ§μ μ°Έκ³ νλλ°, 13, 14 ν μ€νΈμμλ μ λ ¬(sorting)μ κΌ ν΄μ€μΌ νλ€κ³ μΈκΈνκ³ μμλ€. (νλ‘κ·Έλλ¨Έμ€λ λ§μ λ¬Έμ λ€μ΄ sortνμ§ μμΌλ©΄ μλλ ννμΈ κ² κ°λ€... λ΄ μκ° γ γ γ γ )
# 2 λ²μ§Έ νμ΄
def solution(n, lost, reserve):
new_lost = []
for i in lost:
if i in reserve:
reserve.remove(i)
else:
new_lost.append(i)
lost = new_lost
for i in reserve:
if i-1 in lost:
lost.remove(i-1)
elif i+1 in lost:
lost.remove(i+1)
else:
pass
return n - len(lost)
> νΉμλ λ‘μ§μ λ¬Έμ κ° μλ μΆμ΄ μμ lost μμ μμλ€μ μ κ±°νλ λ°©λ²λ μ¨λ΄€λλ° μ²« λ²μ§Έ νμ΄μ λ§μ°¬κ°μ§λ‘ sort() ν¨μλ₯Ό μ¬μ©ν΄ lost 리μ€νΈμ reserve 리μ€νΈλ₯Ό μ λ ¬ν΄μ£Όκ³ λ€μ λλ €λ³΄λ λ°λ‘ νλ Έλ€...
κ²°λ‘
λ νμ΄ λͺ¨λ λ‘μ§μμλ λ¬Έμ κ° μμλ€!!