๋ฌธ์ ์ค๋ช
JadenCase๋ ๋ชจ๋ ๋จ์ด์ ์ฒซ ๋ฌธ์๊ฐ ๋๋ฌธ์์ด๊ณ , ๊ทธ ์ธ์ ์ํ๋ฒณ์ ์๋ฌธ์์ธ ๋ฌธ์์ด์ ๋๋ค. ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, s๋ฅผ JadenCase๋ก ๋ฐ๊พผ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- s๋ ๊ธธ์ด 1 ์ด์์ธ ๋ฌธ์์ด์ ๋๋ค.
- s๋ ์ํ๋ฒณ๊ณผ ๊ณต๋ฐฑ๋ฌธ์(" ")๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์ฒซ ๋ฌธ์๊ฐ ์๋ฌธ์ด ์๋๋์๋ ์ด์ด์ง๋ ์๋ฌธ์ ์๋ฌธ์๋ก ์๋๋ค. ( ์ฒซ๋ฒ์งธ ์ ์ถ๋ ฅ ์ ์ฐธ๊ณ )
์ ์ถ๋ ฅ ์
s | return |
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
๋ด ๋ฌธ์ ํ์ด
func solution(_ s:String) -> String {
let upperString = Array("abcdefghijklmnopqrstuvwxyz".uppercased())
let lowerString = Array("abcdefghijklmnopqrstuvwxyz")
let arr = s.components(separatedBy: " ") // ์ฃผ์ด์ง ๋ฐฐ์ด์ ๊ณต๋ฐฑ ๊ธฐ์ค์ผ๋ก ๋๋ ๋ฐฐ์ด
var result = [String]()
for i in 0..<arr.count {
for j in arr[i] {
// ์ํ๋ฒณ์ผ ๋
if upperString.contains(j) || lowerString.contains(j) {
result.append(arr[i].capitalized) // ์ฒซ ๊ธ์๋ง ๋๋ฌธ์๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
break // ๋ฐ๋ก ํ์ถ
}
// ์ํ๋ฒณ ์๋ ๋
else {
result.append(arr[i].lowercased()) // ์ ๋ถ ์๋ฌธ์๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
break // ๋ฐ๋ก ํ์ถ
}
}
// ๋ฐฐ์ด์ ๋ง์ง๋ง ๋จ์ด ์ ๊น์ง๋ ํ ๋จ์ด๋ง๋ค ๋ฐฐ์ด์ ๊ณต๋ฐฑ ์ถ๊ฐํด์ฃผ๊ธฐ
if i < arr.count-1 {
result.append(" ")
}
}
return result.joined()
}
- ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋๋ ์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ฃผ์๋ค.
- ์๋ฌธ์, ๋๋ฌธ์๋ฅผ ํ๋ณํด์ฃผ๊ธฐ ์ํด ์๋ฌธ์, ๋๋ฌธ์ ๋ฐฐ์ด์ ๊ฐ๊ฐ ์์ฑํด์ฃผ์๋ค.
- ๋ฐฐ์ด ์ฒซ ๋ฒ์งธ ์์๋ถํฐ, ๋ฌธ์์ด ์ฒซ ๋ฒ์งธ ๊ธ์๊ฐ ์ํ๋ฒณ์ผ ๊ฒฝ์ฐ capitalized๋ฅผ ์ฌ์ฉํด ์ฒซ ๊ธ์๋ ๋๋ฌธ์ ๊ทธ๋ฆฌ๊ณ ๋๋จธ์ง๋ ์๋ฌธ์๋ก ๋ง๋ค์ด์ฃผ์๋ค.
- ์ฒซ ๋ฒ์งธ ๊ธ์๊ฐ ์ํ๋ฒณ์ด ์๋ ๊ฒฝ์ฐ ๋ชจ๋ ๊ธ์๋ฅผ ์๋ฌธ์๋ก ๋ณ๊ฒฝํด์ฃผ์๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด์ ํ ์์ ๋ง๋ค JadenCase ํํ๋ก ๋ฐ๊ฟ์ค ํ์๋ result ๋ฐฐ์ด์ ๊ณต๋ฐฑ์ ์ถ๊ฐํด์ฃผ์๋ค.
- ๋ง์ง๋ง์ joined๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด๋ก ๋ฐํํด์ฃผ์๋ค.
๐ก ํผ๋๋ฐฑ
- ๋ค ํ๊ณ ๋ณด๋๊น ๊ณ ์ณ์ผ ํ ์ ์ด ๋ง์๋ณด์ธ๋ค.ใ
- ์ฐ์ , ๊ตณ์ด ์ ๋ ฅ ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ง๋ค ํ์ ์์ด, ๋ฌธ์์ด ๊ทธ๋๋ก๋ฅผ ์ฌ์ฉํ๊ณ , ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋จ์ด๋ค์ ๊ฒ์ฌํด์คฌ์ผ๋ฉด ํจ์ฌ ํจ์จ์ ์ผ ๊ฒ ๊ฐ๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ฐํ ๊ฐ๋ result ๋ฐฐ์ด์ ๋ฐ๋ก ๋ง๋ค๊ณ , joined๋ฅผ ์ฌ์ฉํ๋๋ฐ, ๊ตณ์ด ๊ทธ๋ด ํ์ ์์ด ๋ฐ๋ก ๋ฌธ์์ด๋ก appendํด์ ๋ฐํํด์ฃผ์๋ค๋ฉด ๋ ์ข์ ์ฝ๋๊ฐ ๋์์ ๋ฏ ํ๋ค.
๐ [ ์ถ๊ฐ ] 1์ฃผ์ผ ํ ๋ค์ ํ์ด๋ณด๊ธฐ
func solution(_ s:String) -> String {
var str = s.components(separatedBy: " ")
var result = [String]()
for i in 0..<str.count {
var temp = 0
for j in str[i] {
if temp == 0 {
result.append(String(j.uppercased()))
}
else if temp > 0 {
result.append(String(j.lowercased()))
}
temp += 1
}
if i < str.count-1 {
result.append(" ")
}
}
return result.joined()
}
- ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋๋ ์ ๋ฐฐ์ด ์์ฑํด์ฃผ์๋ค.
- temp ๋ณ์๋ฅผ ์ฌ์ฉํด์ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๊ธ์์ผ ๊ฒฝ์ฐ ๋๋ฌธ์๋ก, ๋๋จธ์ง๋ ์๋ฌธ์๋ก ๋ณ๊ฒฝํด์ฃผ์๋ค.
- ๋จ์ด ์ฌ์ด์๋ ๊ณต๋ฐฑ์ ์ถ๊ฐํด์ฃผ์๋ค.
- ๋๋ฌธ์, ์๋ฌธ์ ๋ฐฐ์ด์ ๋ฐ๋ก ์์ฑํ์ง ์๊ณ ์์ฑํจ์ผ๋ก์จ ์ฒซ ๋ฒ์งธ ํ์ด๋ณด๋ค ๊ฐ๊ฒฐํ ์ ํผ ๊ฒ ๊ฐ๋ค.
๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/12951
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ํผ๋ณด๋์น ์ Programmers(Lv.2) (0) | 2021.07.08 |
---|---|
[Swift Algorithm] ํ๋ ฌ์ ๊ณฑ์ Programmers(Lv.2) (0) | 2021.07.08 |
[Swift Algorithm] ์ต์๊ฐ ๋ง๋ค๊ธฐ Programmers(Lv.2) (0) | 2021.06.24 |
[Swift Algorithm] N๊ฐ์ ์ต์๊ณต๋ฐฐ์ Programmers(Lv.2) (1) | 2021.06.18 |
[Swift Algorithm] ๋ชจ์๊ณ ์ฌ Programmers(Lv.1) (0) | 2021.06.18 |
๋๊ธ