JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift)
JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/12951
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๊ธฐ์กด์ ๋์ ํ์ด
๊ณต๋ฐฑ์ ๋ฐ๋ผ์ ๊ฐ๊ฐ์ ๋ฌธ์์ด์ ๊ท์น์ ์ ์ฉํ๋ค.
ํ์ง๋ง ์ด ํ์ด๋ ๊ณต๋ฐฑ์ด ์ฌ๋ฌ๊ฐ์ผ๋ ํ ์คํธ์ผ์ด์ค๋ฅผ ํต๊ณผํ์ง ๋ชปํ๋ค.
์ฆ abc def๋ผ๋ ๋ฌธ์์ด์ด ์์๋ solutionํจ์๋ฅผ ๊ฑฐ์น๋ฉด Abc Def๊ฐ ์๋ Abc Def๊ฐ ๋๋ค.
๊ทธ๋์ ๊ณ ์ฐจํจ์๋ฅผ ์ ์ ๋ด๋ ค๋๊ณ ๊ณต๋ฐฑ์ ๊ฐ์๋ฅผ ์ธ๊ธฐ ์ํด ๋ค๋ฅธ ์ฝ๋๋ก ์ ๊ทผํ๋ค.
func solution(_ s:String) -> String {
let arr = s.split(separator: " ").map{String($0)}
return arr.map{ $0.first!.isNumber ? $0.lowercased() : $0.capitalized }.joined(separator: " ")
}
๊ฐ์ ํ ๋์ ํ์ด
func solution(_ s:String) -> String {
var idx = 0
var result = ""
for x in s {
if x == " " {
result += String(x)
idx = 0
} else {
if idx == 0 {
result += String(x).uppercased()
} else {
result += String(x).lowercased()
}
idx += 1
}
}
return result
}
๋ค๋ฅธ ์ฌ๋์ ํ์ด
์ง๊ด์ ์ธ ๋ ผ๋ฆฌ๋ก ์์ฑํ์ ์ ๊ฐ์ ธ์๋ค.
๊ณต๋ฐฑ์ uppercasedํ๊ฑฐ๋ lowercasedํ๋๋ผ๋ ๊ณต๋ฐฑ์ด๊ธฐ ๋๋ฌธ์ ์ ์ ๋น์นธ์ด ๊ณต๋ฐฑ์ธ์ง ์๋์ง์ ๋ฐ๋ผ ๋ก์ง์ ์ฒ๋ฆฌํ ์ ์์๋ค.
func solution(_ s:String) -> String {
var isBeforeBlank: Bool = true
var result = ""
for x in s {
result += isBeforeBlank ? x.uppercased() : x.lowercased()
isBeforeBlank = (x == " ")
}
return result
}