๐ ์ฝ๋ฉํ ์คํธ
โ๐ป Github
๋ฌธ์ ์ค๋ช
JadenCase๋ ๋ชจ๋ ๋จ์ด์ ์ฒซ ๋ฌธ์๊ฐ ๋๋ฌธ์์ด๊ณ , ๊ทธ ์ธ์ ์ํ๋ฒณ์ ์๋ฌธ์์ธ ๋ฌธ์์ด์ ๋๋ค. ๋จ, ์ฒซ ๋ฌธ์๊ฐ ์ํ๋ฒณ์ด ์๋ ๋์๋ ์ด์ด์ง๋ ์ํ๋ฒณ์ ์๋ฌธ์๋ก ์ฐ๋ฉด ๋ฉ๋๋ค. ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, s๋ฅผ JadenCase๋ก ๋ฐ๊พผ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- s๋ ๊ธธ์ด 1 ์ด์ 200 ์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค.
- s๋ ์ํ๋ฒณ๊ณผ ์ซ์, ๊ณต๋ฐฑ๋ฌธ์(" ")๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์ซ์๋ ๋จ์ด์ ์ฒซ ๋ฌธ์๋ก๋ง ๋์ต๋๋ค.
- ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋จ์ด๋ ์์ต๋๋ค.
- ๊ณต๋ฐฑ๋ฌธ์๊ฐ ์ฐ์ํด์ ๋์ฌ ์ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
s | return |
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
๋ฌธ์ ํ์ด
๋์ ํ์ด
func solution(_ s:String) -> String {
s.replacingOccurrences(of: " ", with: " -")
.split(separator: "-")
.map{ $0.prefix(1).uppercased() + $0.suffix($0.count-1).lowercased()}
.reduce("", +)
}
“๊ณต๋ฐฑ๋ฌธ์๊ฐ ์ฐ์ํด์ ๋์ฌ ์ ์์ต๋๋ค” ๋ผ๋ ๋ฌธ์ ๋ ์ ๋ฒ์๋ ํ์๋ ๊ฒ ๊ฐ์๋ฐ.. ํด๊ฒฐ๋ฐฉ๋ฒ์ด ๋ฌด์ง์ฅ ๋ ์ค๋ฅด์ง ์์๋ค. if ๋ฌธ์ ์จ๋ ๋์ง๋ง, ๊น๋ํ๊ฒ ํ ํ์ ํด๊ฒฐํ๊ณ ์ถ์๋ค.
ํ์ฐธ์ ๊ณ ๋ฏผํ๋ค๊ฐ ๋ ์ค๋ฅธ ๋ฐฉ๋ฒ์ ๋น ๋ฐฐ์ด๋ก “ “์ split ํจ์๋ก ์์ ๊ธฐ ๋๋ฌธ์ ์์ ๋น ๋ฌธ์์ด์ธ ๊ฒฝ์ฐ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ ์ฝ๋๋ผ๊ณ ์ค๋ฅ๊ฐ ๋ฌ๋ค. ๊ทธ๋์ ๋น๋ฌธ์์ด " " ๋ฅผ ๋ฌธ์์ด ๋ณํํจ์๋ฅผ ์ด์ฉํด “ - “๋ก ๋ฐ๊พธ์ด์ฃผ์๋ค. ( ์ replacingOccurrences
๋ฌธ๋ฒ์ ์จ๋ ์จ๋ ์ธ์์ง์ง ์๋๋ฐ ๋๋ง ๊ทธ๋? ๋งจ๋ ์ฒ ์ ํ๋ฆฌ๊ณ , ๋ค์ ์ฐ๊ณ , of๋ in ์ด์๋์ง.. of๋ to ์๋์ง.. ๊ธฐ์ต์ด ์๋!1 ) ์ํผ ์ฒ์์ “ - “ ๋ฅผ ๋ฃ๊ณ , “-” ๋ก ๋ถ๋ฆฌํ๋๋ฐ ์ถ๋ ฅํด๋ณด๋ ๊ตณ์ด “ “ ๋น ๋ฌธ์์ด์ด ์๋ค๋ก ๋ ๋ฒ ๋ค์ด๊ฐ ํ์๊ฐ ์์๋ค. ํ ํ์ ๋๋ผ ์ ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ์น ์ค์ณ์ง๋๊ฐ! ๊ทธ๋์ “ -“ ๋ก ๋ถ๋ฆฌ ์ํจ ๋ค์ map
ํจ์๋ฅผ ์ด์ฉํด ์ฒซ๊ธ์๋ง ๋๋ฌธ์๋ก ๋ฐ๊พธ์ด์ฃผ๊ณ , ๋๋จธ์ง๋ reduce
๋ฅผ ํด์คฌ๋ค.
โญ๏ธ replacingOccurrences(of: , with: )
๋ฌธ๋ฒ ์ฒ ์ ๊น๋จน์ง ์๊ธฐ..
โญ๏ธ split
๊ณผ components
์ ์ฐจ์ด๋ ๊ณต๋ฐฑ๋ฌธ์๋ฅผ ๋ฐํํ ์ ์๋์ง ์๋์ง๋ผ ๋ณดํต split
์ด ๋ ๋น ๋ฆ
โญ๏ธ ๊ณต๋ฐฑ ๋ฌธ์์ด์ ๊ทธ๋๋ก ์ถ๋ ฅํ๋ฉด์ ๋จ์ด๋ก ๋ถ๋ฆฌ์ํค๊ณ ์ถ์ ๋ “ -”๋ฅผ ๋ฃ๊ธฐ