2022. 10. 13. 15:25ใํ๋ก๊ทธ๋๋จธ์ค-Swift
ํ๋ก๊ทธ๋๋จธ์ค - n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/87390
๋์ ํ์ด
์๊ฐ์ด๊ณผ๊ฐ ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ์ง๋ง ๋ฌธ์ ๊ฐ ๋งํ๋๋๋ก ๊ตฌํ์ ํด๋ณด๊ณ ์ถ์ด์ ํ ํ์ด์ด๋ค.
import Foundation
func solution(_ n:Int, _ left:Int64, _ right:Int64) -> [Int] {
var arr3 = [[Int]](repeating: [Int](repeating: 0, count: n), count: n)
var result: [[Int]] = [[]]
arr3[0][0] = 1
for i in 1..<n {
for j in 0..<i {
arr3[i][j] = i+1
arr3[j][i] = i+1
}
arr3[i][i] = i+1
}
arr3.forEach { arr in
result.append(arr)
}
let mapArr = result.flatMap {$0}
return Array(mapArr[Int(left)...Int(right)])
}
์ด ํ์ด ์ดํ์ ํน์ ์ธ๋ฑ์ค์ผ๋ ํน๋ณํ ๊ท์น์ด ์๋ ๊ฑธ ์์๋ค.
์์๋ก n์ด 4์ผ๋
0ํ -> 1234
1ํ -> 2234
2ํ -> 3334
3ํ -> 4444
๊ทธ๋์ left์ right์ ํ์ ๊ตฌํ๊ณ ๊ทธ ์ฌ์ด์ ์๋ ๋ฒ์๋งํผ์ ๋ฐฐ์ด์ ์์ ๊ท์น์ ์ด์ฉํด์ 1์ฐจ์ ๋ฐฐ์ด์ ๋ฃ์๋ค.
๋ง๋ค์ด์ง 1์ฐจ์ ๋ฐฐ์ด์ left์ ํด๋นํ๋ ์ธ๋ฑ์ค ํ์ ์ฒซ๋ฒ์งธ ์์๋ถํฐ ์๊ธฐ ๋๋ฌธ์ ๊ทธ ์ ๊น์ง์ ๊ฐ์ธ ํ์ ์ * n๋งํผ์ ๋นผ์ฃผ์ด ์ผ์น์์ผฐ๋ค.
import Foundation
func solution(_ n:Int, _ left:Int64, _ right:Int64) -> [Int] {
var arr: [Int] = []
var left = Int(left)
var right = Int(right)
let startRow = left / n
let endRow = right / n
for i in startRow...endRow {
for _ in 0...i {
arr.append(i+1)
}
for k in i+1..<n {
arr.append(k+1)
}
}
let startIdx = left - (startRow * n)
let endIdx = right - (startRow * n)
return Array(arr[startIdx...endIdx])
}
์ ํ์ด๊ฐ ๋์ํ ์ ์๋ ์ด์ ๋ left์ right์ ์ฐจ์ด๊ฐ 10^5์ดํ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ค๋ฅธ ์ฌ๋์ ํ์ด
arr[0][0] = 1์ด๊ณ , arr[1][0], arr[0][1], arr[1][1] = 2์ธ ๊ฒ์ ๋ณด๊ณ i์ j์ค ๋ ํฐ ๊ฒ + 1์ด ๋ฐฐ์ด์ ๊ฐ์ธ ๊ฒ์ ์ด์ฉํ ํ์ด์ด๋ค.
๋ฐฐ์ด์ ํ์ i / n, ์ด์ i % n์ธ ๊ฒ์ ์๋ฉด ๋ฐ๋ก ์๊ฐํ์ ๊ฒ ๊ฐ์๋ฐ ๋๋ ๋ฐ๋ก ์๊ฐํ์ง ๋ชปํ๋ค.
์ด ๊ตฌ์กฐ๋ฅผ ์์งํ๊ณ ๊ฐ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
import Foundation
func solution(_ n:Int, _ left:Int64, _ right:Int64) -> [Int] {
var left = Int(left)
var right = Int(right)
return Array(left...right).map{
return max($0 / n + 1, $0 % n + 1)
}
}
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ๋ฅ๊ฐ๋ฐ(Swift) (0) | 2022.10.14 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ์์ฅ(Swift) (0) | 2022.10.14 |
ํ๋ก๊ทธ๋๋จธ์ค - ํํ(Swift) (0) | 2022.10.12 |
ํ๋ก๊ทธ๋๋จธ์ค - ๊ดํธ ํ์ ํ๊ธฐ (0) | 2022.10.12 |
ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ฌ์ ๊ณฑ์ (Swift) (0) | 2022.10.12 |