λ¬Έμ π https://programmers.co.kr/learn/courses/30/lessons/17687
λ¬Έμ μ€λͺ
νλΈκ° Nμ§μ κ²μμ νλλ° νλΈ μμμ λ§ν΄μΌ νλ μ«μλ€μ ꡬνλ λ¬Έμ μ λλ€.
κ²μ κ·μΉμ λ¬Έμ μ μμΈν λμμμ΅λλ€.
λ¬Έμ νμ΄
λͺ¨λ μ«μ κ²°κ³Όκ°μ κ°μ§ string λ°°μ΄μ ꡬνκ³ κ·Έ μ€μμ νλΈμ μ°¨λ‘μ λ§ν μ«μλ€μ λ½μμΌ ν©λλ€.
μ΄ λ¬Έμ λ₯Ό νκΈ° μν΄μ λκ°μ§λ₯Ό μμμΌ ν©λλ€!!
1. Nμ§μ λ³ν λ°©λ²
2. forλ¬Έ λκΈ° → +1μ΄ μλλΌ +nλ§νΌ λμμΌ ν©λλ€. (νλΈμ μμλ +μ¬λμλ§νΌ λμμ€κΈ° λλ¬Έ)
1λ²μ swiftμ radix λ©μλλ₯Ό μ¬μ©νλ©΄ λ©λλ€. (νμ ꡬννμλλ° μ€λ μ²μ μ γ γ ,,)
λ³νν μμ μ§ μλ₯Ό μ νλ©΄ λ©λλ€.
uppercaseλ optional νλΌλ―Έν°μΈλ° 11μ§μμ΄μλΆν° μνλ²³μΌλ‘ ννλλ μ«μλ€μ λμλ¬Έμλ₯Ό κ²°μ ν©λλ€.
let target: Int = 3
let n: Int = 2
let result = String(target, radix: n, uppercase: true)
print(result)
// 11
2λ² λ°©λ²μ κ°λ¨νκ² μκ°νλ©΄ forλ¬Έμ λλ©° λλ¨Έμ§ μ°μ°μ μ΄μ©ν΄μ ꡬν μ μμ΅λλ€.
n, n+2, n+4, n+6 μΌ κ²½μ°
2λ‘ λλ λλ¨Έμ§λ‘ νλ¨νμ¬ μ«μλ€μ λ½μ μ μμ΅λλ€.
// λ¬Έμ μ νμ΄ μλ!!
for (i,num) in totalNumber.enumerated() {
if i % 2 == 1 {
result.append(num)
if result.count == t {
break
}
}
}
μ λ μ΄ νμ΄λ°©λ²μ μ¬μ©νμ§λ§ λ€λ₯Έ μ¬λμ νμ΄λ₯Ό λ³΄κ³ strideλΌλ λ©μλλ₯Ό μκ² λμμ΅λλ€!!
stride(from: A, to: B, by: C) λΌκ³ νλ©΄
AλΆν° BκΉμ§ Cλ§νΌ λνλ©΄μ κ°κ±°μΌ! λΌλ λ»μ λλ€.
μ΄ λ Bλ ν¬ν¨νμ§ μκ³ B-1 κΉμ§ ν¬ν¨ν©λλ€.
for i in stride(from: 0, to: 10, by: 2) {
print(i)
}
// 0
// 2
// 4
// 6
// 8
μ½λ
λλ¨Έμ§ μ°μ°μ μ΄μ©ν forλ¬Έ
func changeRadix(_ n: Int, _ target: Int) -> String {
return String(target, radix: n, uppercase: true)
}
func solution(_ n:Int, _ t:Int, _ m:Int, _ p:Int) -> String {
let total: Int = t * m
var totalNumber: String = ""
var result: String = ""
for i in 0..<total {
totalNumber.append(changeRadix(n, i))
}
for (i,num) in totalNumber.enumerated() {
if i % m == (p-1) {
result.append(num)
if result.count == t {
break
}
}
}
return result
}
stride μ°μ°μ μ΄μ©ν forλ¬Έ
func changeRadix(_ n: Int, _ target: Int) -> String {
return String(target, radix: n, uppercase: true)
}
func solution(_ n:Int, _ t:Int, _ m:Int, _ p:Int) -> String {
let total: Int = t * m
var totalNumber: String = ""
var result: String = ""
for i in 0..<total {
totalNumber.append(changeRadix(n, i))
}
for i in stride(from: (p-1), to: (p-1) + m * t, by: m) {
let index = totalNumber.index(totalNumber.startIndex, offsetBy: i)
result.append(totalNumber[index])
print(i)
}
return result
}
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] string radix initializer (1) | 2022.09.22 |
---|---|
[Programmers] μμ₯ (0) | 2022.03.30 |
[Programmers] 거리λκΈ° νμΈνκΈ° (0) | 2022.02.04 |
[Programmers] 1μ°¨ μΆμ νΈλν½ (0) | 2022.02.03 |
[Programmers] λ¬Έμμ΄ μμΆ (0) | 2022.02.01 |