νλ‘κ·Έλλ¨Έμ€ LV.1 λͺ¨μ
체μ‘볡
λ¬Έμ μ€λͺ
μ μ¬μκ°μ λλμ΄ λ€μ΄, μΌλΆ νμμ΄ μ²΄μ‘볡μ λλλΉνμ΅λλ€. λ€νν μ¬λ² 체μ‘λ³΅μ΄ μλ νμμ΄ μ΄λ€μκ² μ²΄μ‘볡μ λΉλ €μ£Όλ € ν©λλ€. νμλ€μ λ²νΈλ 체격 μμΌλ‘ λ§€κ²¨μ Έ μμ΄, λ°λ‘ μλ²νΈμ νμμ΄λ λ°λ‘ λ·λ²νΈμ νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
μλ₯Ό λ€μ΄, 4λ² νμμ 3λ² νμμ΄λ 5λ² νμμκ²λ§ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€. 체μ‘λ³΅μ΄ μμΌλ©΄ μμ μ λ€μ μ μκΈ° λλ¬Έμ 체μ‘볡μ μ μ ν λΉλ € μ΅λν λ§μ νμμ΄ μ²΄μ‘μμ μ λ€μ΄μΌ ν©λλ€.
μ 체 νμμ μ n, 체μ‘볡μ λλλΉν νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ lost, μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμλ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ reserveκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, 체μ‘μμ μ λ€μ μ μλ νμμ μ΅λκ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
μ ν μ¬ν
- μ 체 νμμ μλ 2λͺ μ΄μ 30λͺ μ΄νμ λλ€.
- 체μ‘볡μ λλλΉν νμμ μλ 1λͺ μ΄μ nλͺ μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
- μ¬λ²μ 체μ‘볡μ κ°μ Έμ¨ νμμ μλ 1λͺ μ΄μ nλͺ μ΄νμ΄κ³ μ€λ³΅λλ λ²νΈλ μμ΅λλ€.
- μ¬λ² 체μ‘λ³΅μ΄ μλ νμλ§ λ€λ₯Έ νμμκ² μ²΄μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
- μ¬λ² 체μ‘볡μ κ°μ Έμ¨ νμμ΄ μ²΄μ‘볡μ λλλΉνμ μ μμ΅λλ€. μ΄λ μ΄ νμμ 체μ‘볡μ νλλ§ λλλΉνλ€κ³ κ°μ νλ©°, λ¨μ 체μ‘λ³΅μ΄ νλμ΄κΈ°μ λ€λ₯Έ νμμκ²λ 체μ‘볡μ λΉλ €μ€ μ μμ΅λλ€.
μ μΆλ ₯ μ
n | lost | reserve | return |
5 | [2, 4] | [1, 3, 5] | 5 |
5 | [2, 4] | [3] | 4 |
3 | [3] | [1] | 2 |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- 1λ² νμμ΄ 2λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όκ³ , 3λ² νμμ΄λ 5λ² νμμ΄ 4λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όλ©΄ νμ 5λͺ μ΄ μ²΄μ‘μμ μ λ€μ μ μμ΅λλ€.
μ μΆλ ₯ μ #2
- 3λ² νμμ΄ 2λ² νμμ΄λ 4λ² νμμκ² μ²΄μ‘볡μ λΉλ €μ£Όλ©΄ νμ 4λͺ μ΄ μ²΄μ‘μμ μ λ€μ μ μμ΅λλ€.
μ μΆ
import Foundation
func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int {
var reserveList = reserve.sorted()
var lostList = lost.sorted()
for reserveItem in reserveList {
if let lostIndex = lostList.firstIndex(of:reserveItem),
let reserveIndex = reserveList.firstIndex(of: reserveItem) {
reserveList.remove(at: reserveIndex)
lostList.remove(at:lostIndex)
}
}
var count = n - lostList.count
for lostIndex in lostList {
if let index = reserveList.firstIndex(of:lostIndex - 1) {
reserveList.remove(at:index)
count += 1
}else if let index = reserveList.firstIndex(of:lostIndex + 1) {
reserveList.remove(at:index)
count += 1
}
}
return count
}
μ λ ₯λ°μ λ λ°°μ΄μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νλ€.
μ¬λΆμ 체μ‘볡μ κ°μ Έμ¨ νμκ³Ό 체μ‘볡μ μμ΄λ²λ¦° νμμ΄ λμΌν κ²½μ° (λ λ°°μ΄μ λͺ¨λ κ°μ μ«μμ μμκ° μλ κ²½μ°) λ λ°°μ΄μμ ν΄λΉ μμλ₯Ό μμ νλ€.
count λ³μλ₯Ό μμ±νμ¬ μ 체 νμμμμ 체μ‘볡μ μμ΄λ²λ¦° νμμ μλ₯Ό λΊλ€. (μμ μ λ€μ μ μλ νμμ μ)
체μ‘볡μ μμ΄λ²λ¦° νμμ μ λ²νΈ λλ λ· λ²νΈμ νμμ΄ μ¬λΆμ 체μ‘볡μ κ°μ Έμ¨ κ²½μ° reserveλ°°μ΄μμ ν΄λΉ νμμ μμλ₯Ό μμ ν ν count λ³μλ₯Ό 1 μ¦κ°μν¨λ€.
λ€λ₯Έ νμ΄
import Foundation
func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int {
let lostArray = lost.filter{!reserve.contains($0)}
let reserveArray = reserve.filter{!lost.contains($0)}
var lostCount = lostArray.count
reserveArray.forEach { index in
if (lostArray.contains(index-1) || lostArray.contains(index+1)) && lostCount > 0 {
lostCount -= 1
}
}
return n - lostCount
}
filterν¨μλ₯Ό μ¬μ©νμ¬ lostμ reserve λ λ°°μ΄μ 곡ν΅μΌλ‘ λ€μ΄κ°λ μμλ μ μΈνλ€.
체μ‘볡μ μμ΄λ²λ¦° νμμ μλ₯Ό μ μ₯ν lostCount λ³μλ₯Ό μμ±νλ€.
reserveArrayμ μμλ€ μ€ (μμ-1) λλ (μμ+1) κ°μ΄ lostArrayμ ν¬ν¨λμ΄ μκ³ , lostCountκ° 0 μ΄μμΈ κ²½μ°, lostCountλ₯Ό 1 λΊλ€.
μ 체 νμ μ μμ lostCountλ₯Ό λΊ λλ¨Έμ§λ₯Ό λ°ννλ€.
'β¨οΈ Language > swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€ LV.1] ν¬λ μΈ μΈνλ½κΈ° κ²μ (0) | 2023.02.28 |
---|---|
[νλ‘κ·Έλλ¨Έμ€ LV.1] μ€ν¨μ¨ (0) | 2023.02.24 |
[νλ‘κ·Έλλ¨Έμ€ LV.1] λͺ¨μκ³ μ¬ (0) | 2023.02.22 |
[νλ‘κ·Έλλ¨Έμ€ LV.1] Kλ²μ§Έμ (0) | 2023.02.22 |
[νλ‘κ·Έλλ¨Έμ€ LV.1] λ€νΈ κ²μ (0) | 2023.02.21 |