μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |
Tags
- Queue
- ios
- λμ ν©
- λ°±νΈλνΉ
- λΆν νμ
- μ΄μ§νμ
- λ°±μ€
- BFS
- WebApp
- μ½λ©ν μ€νΈ
- μ€ν
- μ½ν
- μμ
- Swift
- μ ν΄λ¦¬λ νΈμ λ²
- SwiftUI
- μκ³ λ¦¬μ¦
- νλ‘κ·Έλλ¨Έμ€
- λΆν μ 볡
- λΆν μ 볡
- 그리λ μκ³ λ¦¬μ¦
- λΈλ£¨νΈν¬μ€ μκ³ λ¦¬μ¦
- dfs
- WebView
- λΉνΈμ°μ°μ
- λΈλ£¨νΈν¬μ€
- λ¬Έμμ΄
- dp
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] νλ‘κ·Έλλ¨Έμ€ - μ κ· μμ΄λ μΆμ² λ³Έλ¬Έ
π€ μκ³ λ¦¬μ¦/programmers
[swift] νλ‘κ·Έλλ¨Έμ€ - μ κ· μμ΄λ μΆμ²
MUKER 2023. 1. 30. 21:24νλ‘κ·Έλλ¨Έμ€
μ½λ μ€μ¬μ κ°λ°μ μ±μ©. μ€ν κΈ°λ°μ ν¬μ§μ 맀μΉ. νλ‘κ·Έλλ¨Έμ€μ κ°λ°μ λ§μΆ€ν νλ‘νμ λ±λ‘νκ³ , λμ κΈ°μ κΆν©μ΄ μ λ§λ κΈ°μ λ€μ λ§€μΉ λ°μΌμΈμ.
programmers.co.kr
λ¬Έμ νΈλ λ° μμ΄ λμμ΄ λλλ‘ λμ νμ΄μ κ°μ λ νμ΄λ₯Ό μ¬λ¦½λλ€.
λν νμ΄ ν λ€λ₯Έ μ¬λμ νμ΄λ₯Ό λ³΄κ³ μ°Έκ³ ν λ§ν νμ΄λ μ¬λ¦½λλ€.
- λ¬Έμ μ λ°λΌ λμ νμ΄λ§ μμ μ μμ΅λλ€.
- ν΄λΉ νμ΄λ€μ νμ΄ μ€ νλμΌ λΏ μ΅μ μ νμ΄λ μλ μ μμ΅λλ€.
λμ νμ΄
import Foundation
func solution(_ new_id:String) -> String {
var availableID = new_id
var temp: Character = "0"
availableID = availableID.lowercased() // 1
for (i,j) in availableID.enumerated().reversed() {
if !j.isLetter && !j.isNumber && j != "-" && j != "_" && j != "." { // 2
availableID.remove(at: availableID.index(availableID.startIndex, offsetBy: i))
}
}
for (i,j) in availableID.enumerated().reversed() {
if j == "." && temp == "." { // 3
availableID.remove(at: availableID.index(availableID.startIndex, offsetBy: i))
}
temp = j
}
if availableID.first == "." { availableID.removeFirst() } // 4
if availableID.last == "." { availableID.removeLast() }
if availableID.isEmpty { availableID = "a"} // 5
if availableID.count > 15 { availableID.removeSubrange(availableID.index(availableID.startIndex, offsetBy: 15)...availableID.index(availableID.startIndex, offsetBy: availableID.count-1)) } // 6
if availableID.last == "." { availableID.removeLast() }
if availableID.count < 3 { availableID = availableID.padding(toLength: 3, withPad: String(availableID.last!), startingAt: 0)} // 7
return availableID
}
κ°μ λ νμ΄
import Foundation
func solution(_ new_id:String) -> String {
var newId = new_id
.lowercased()
.replacingOccurrences(of: "[^a-z0-9-_.]", with: "", options: .regularExpression, range: nil)
.replacingOccurrences(of: #"\.{1,}"#, with: ".", options: .regularExpression, range: nil)
if newId.first == "." { newId.removeFirst() }
if newId.last == "." { newId.removeLast() }
if newId.isEmpty { newId.append("a")}
if newId.count > 15 { newId.removeLast(newId.count - 15)}
if newId.first == "." { newId.removeFirst() }
if newId.last == "." { newId.removeLast() }
while newId.count <= 2 {
newId.append(newId.last!)
}
return newId
}
μ°Έκ³ ν λ§ν νμ΄
func solution(_ new_id:String) -> String {
let newID = new_id
.lowercased()
.replacingOccurrences(of: #"[^\w.-]"#, with: "", options: .regularExpression)
.replacingOccurrences(of: #"\.{2,}"#, with: ".", options: .regularExpression)
.trimmingCharacters(in: CharacterSet(charactersIn: "."))
.modifier { $0.isEmpty ? "a" : $0 }
.modifier { $0.count >= 16 ?
String($0[..<$0.index($0.startIndex, offsetBy: 15)]) : $0}
.trimmingCharacters(in: CharacterSet(charactersIn: "."))
.modifier {
$0.count <= 2 ? $0.padding(toLength: 3, withPad: String($0.last!), startingAt: 0) : $0
}
return newID
}
extension String {
func modifier(_ code: (String) -> String) -> String {
return code(self)
}
}
'π€ μκ³ λ¦¬μ¦ > programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[swift] νλ‘κ·Έλλ¨Έμ€ - μ±κ²© μ ν κ²μ¬νκΈ° (2) | 2023.02.01 |
---|---|
[swift] νλ‘κ·Έλλ¨Έμ€ - κ³ΌμΌ μ₯μ (0) | 2023.01.31 |
[swift] νλ‘κ·Έλλ¨Έμ€ - λ‘λμ μ΅κ³ μμμ μ΅μ μμ (0) | 2023.01.27 |
[swift] νλ‘κ·Έλλ¨Έμ€ - κ°μ₯ κ°κΉμ΄ κ°μ κΈμ (0) | 2023.01.26 |
[swift] νλ‘κ·Έλλ¨Έμ€ - κΈ°μ¬λ¨μμ 무기 (0) | 2023.01.25 |