์บ์ - ํ๋ก๊ทธ๋๋จธ์ค(Swift)
2022. 10. 11. 13:18ใํ๋ก๊ทธ๋๋จธ์ค-Swift
์บ์ - ํ๋ก๊ทธ๋๋จธ์ค(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/17680
๋์ ํ์ด
์ฒ์์ LRU์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ์ฅ ์ค๋๋ ๊ฒ์ ๊ต์ฒดํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ ์ด ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ์ ๊ธฐ์กด์ ์์ ์๋ ๊ฐ์ด ๋ ์ฐธ์กฐํ๊ฒ ๋๋ค๋ฉด ๊ฐ์ฅ ์ต์ ์ธ ์ํ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด ํต์ฌ์ด๋ค.
์ฆ 3๊ฐ์ ์บ์๊ณต๊ฐ์ด ์์๋ 1->2->3->2->4 ๊ฐ ๋ค์ด์จ๋ค๋ฉด 2๊ฐ๋ค์ด์ฌ๋ 1->2->3์ด ์๋ 1->3->2๊ฐ ๋์ด 2๊ฐ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋๊ฐ๊ฒ ๋๋ค.
func solution(_ cacheSize:Int, _ cities:[String]) -> Int {
var caches: [String] = []
var time: Int = 0
if cacheSize == 0 {
return 5*(cities.count)
}
for city in cities {
if caches.contains(city.lowercased()) {
let idx = caches.firstIndex(of: city.lowercased())!
caches.remove(at: idx)
caches.append(city.lowercased())
time += 1
} else {
if caches.count == cacheSize {
caches.removeFirst()
}
caches.append(city.lowercased())
time += 5
}
}
return time
}
ํผ๋๋ฐฑ
๋ฐฐ์ด์๋ removeFirst(), removeLast()๊ฐ ์กด์ฌํ๋ค.
๋ฐฐ์ด์์ firstIndex()๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์๋๋ ์ธ์๋ก of๋ฅผ ์ค์ผํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ฌ์ ๊ณฑ์ (Swift) (0) | 2022.10.12 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - h-Index(Swift) (0) | 2022.10.11 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ ํ์ ์๊ฐ ์ด๋(Swift) (0) | 2022.10.11 |
๋ฉ๋ฆฌ ๋ฐ๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.10.11 |
N๊ฐ์ ์ต์๊ณต๋ฐฐ์ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.10.10 |