์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- Figma
- Firestore CRUD
- ํ๋ก๊ทธ๋๋จธ์ค
- Reduce
- mongoose
- UIRefreshController
- ์ฑ๋ง๋ค๊ธฐ
- String.Index
- nodejs
- map
- Decodable
- ์ง๋ฒ๋ณํ
- Firestore
- MongoDB
- Core Data
- Codable
- ios
- RxSwift
- AVAudioPlayer
- SWiFT
- ExpressJS
- ์๊ณ ๋ฆฌ์ฆ
- components
- Cloud Firestore
- Encodable
- Filter
- Mac
- CRUD
- DispatchQueue
- ์ฑ๋์์ธ
- Today
- Total
Focus On Develop ๐ค๐ค
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ํธ ๋ณธ๋ฌธ
<๋ฌธ์ >
<์ ๋ต์ง๊ธฐ>
์ผ๋จ ์ํ๋ฒณ ๋์๋ฌธ์๋ ASCII์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์ด์, s๋ฅผ ๋/์๋ฌธ์ ๋ฒ์์ ๋ฐ๋ผ ์ฒดํฌํ๋ ๊ฒ๋ ํ๋์ ๋ฐฉ๋ฒ์ผ ๋ฏ ํ๋ฐ.. (๋๋ ASCII์ฝ๋๋ฅผ ์ฌ์ค ์ ๋ชจ๋ฆ ใ ) ์ํ๋ฒณ ์์๋ ์ด์ฐจํผ ์๊ณ ์๋ ๊ฑฐ๋๊น ์ฐจ๋ผ๋ฆฌ ์ํ๋ฒณ์ ๋ฏธ๋ฆฌ ์ ์ํด๋๊ณ , s์ ๋ฌธ์๋ค์ ์ฒดํฌํ๋ฉด์ ์ ์ํด๋ ์ํ๋ฒณ ๋ฌธ์์์ n๋งํผ ๋ค์ ์๋ ๋ฌธ์๋ก ๋์ฒดํ๋ ๊ฑธ๋ก ํ์ด์ผ๊ฒ ๋ค. z๋ฅผ ๋์ด๊ฐ๋ฉด Out of Index๋๊น.. ์ํ๋ฐฐ์ด์ฒ๋ผ % ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ Index๋ฅผ ์ฐพ์์ผ๊ฒ ๋ค.
<์ฝ๋>
let alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
let lowerAlpha = alpha.lowercased()
let arrayAlpha = Array(alpha)
let arrayLowerAlpha = Array(lowerAlpha)
func solution(_ s:String, _ n:Int) -> String {
var array = Array(s)
for (i, x) in array.enumerated() {
if alpha.contains(x) {
array[i] = arrayAlpha[(Int(arrayAlpha.firstIndex(of: x)!)+n) % alpha.count]
} else if lowerAlpha.contains(x) {
array[i] = arrayLowerAlpha[(Int(arrayLowerAlpha.firstIndex(of: x)!)+n) % alpha.count]
}
}
return String(array)
}
<Lesson Learned>
์ผ๋จ map์ผ๋ก๋ ์ถฉ๋ถํ ๊ฐ๋ฅํ ๊ฒ ๊ฐ์๋ฐ ์ต์์น ์์์ ์ผ๋จ ๋ฐฐ์ด๋ก ๋ฌธ์ ํผ ์ํฉ.. ใ .ใ ๊ทธ๋์ ๊ทธ๋ฐ์ง ์ฝ๋๊ฐ ๊ต์ฅํ ๊น๋ํ์ง ์์ ๋ฏ(?) ํ๋ค ใ ใ map์ผ๋ก ๋ฐ๊ฟ๋ ๋ก์ง์ ๋๊ฐ์ด ๋ค์ด๊ฐ๊ธด ํ ํ ๋ฐ..๋ณด๊ธฐ์ ๊น๋ํ(?) ใ ใ ๊ทธ๋ฆฌ๊ณ ์ด๋ฌธ์ ๋ ์๊ฐ์ ํ or ๋ฉ๋ชจ๋ฆฌ์ ํ ์ ๋ฐ๋ผ ์ฝ๊ฐ ๋ก์ง์ ๋ฐ๊ฟ ์ ์์ ๊ฒ ๊ฐ๋ค. ์๋ง 2๊ฐ์ง๋ ์๊ฐ/๋ฉ๋ชจ๋ฆฌ๊ฐ Trade Off ์ธ.. ๐ญ ๊ทธ๋๋ ์ด ๋ฌธ์ ๋ s์ ๊ธธ์ด๊ฐ ์ต๋ 8000 ์ด๋๊น, ์ฐจ๋ผ๋ฆฌ lowerAlpha๋ฅผ ๋ฐ๋ก ์ ์ํด๋๊ณ ์์ ํ์ด์ฒ๋ผ ํธ๋๊ฒ ๋์ ๊ฒ ๊ฐ๋ค ๐ค๐ค
let alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
let arrayAlpha = Array(alpha)
func solution(_ s:String, _ n:Int) -> String {
var originArray = Array(s)
var array = Array(s)
for (i, x) in array.enumerated() {
if alpha.contains(x.uppercased()) {
array[i] = arrayAlpha[(Int(arrayAlpha.firstIndex(of: Character(x.uppercased()))!)+n) % alpha.count]
}
}
for (i, x) in originArray.enumerated() {
if x.isLowercase {
array[i] = Character(array[i].lowercased())
}
}
return String(array)
}
์ถ์ : ํ๋ก๊ทธ๋๋จธ์ค ์์ ์ํธ
'iOS [Swift] > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํฌํธ๋ฆฌ (0) | 2020.12.23 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฐ (0) | 2020.12.21 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ (0) | 2020.12.21 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ด p์ y์ ๊ฐ์ (0) | 2020.12.18 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ์ ์ ์ฌ์ด์ ํฉ (0) | 2020.12.18 |