๋ฌธ์ ์ค๋ช
๋ฌธ์์ด s๋ ํ ๊ฐ ์ด์์ ๋จ์ด๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๊ฐ ๋จ์ด๋ ํ๋ ์ด์์ ๊ณต๋ฐฑ๋ฌธ์๋ก ๊ตฌ๋ถ๋์ด ์์ต๋๋ค. ๊ฐ ๋จ์ด์ ์ง์๋ฒ์งธ ์ํ๋ฒณ์ ๋๋ฌธ์๋ก, ํ์๋ฒ์งธ ์ํ๋ฒณ์ ์๋ฌธ์๋ก ๋ฐ๊พผ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํ์ธ์.
์ ํ ์กฐ๊ฑด
- ๋ฌธ์์ด ์ ์ฒด์ ์ง/ํ์ ์ธ๋ฑ์ค๊ฐ ์๋๋ผ, ๋จ์ด(๊ณต๋ฐฑ์ ๊ธฐ์ค)๋ณ๋ก ์ง/ํ์ ์ธ๋ฑ์ค๋ฅผ ํ๋จํด์ผํฉ๋๋ค.
- ์ฒซ ๋ฒ์งธ ๊ธ์๋ 0๋ฒ์งธ ์ธ๋ฑ์ค๋ก ๋ณด์ ์ง์๋ฒ์งธ ์ํ๋ฒณ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์
s | return |
"try hello world" | "TrY HeLlO WoRlD" |
๋ด ๋ฌธ์ ํ์ด
func solution1(_ s:String) -> String {
var arr = s.components(separatedBy: " ")
for i in 0..<arr.count {
var temp = ""
for (j, char) in arr[i].enumerated() {
if j % 2 == 0 {
temp += char.uppercased()
}
else {
temp += char.lowercased()
}
}
arr[i] = temp
}
return arr.joined(separator: " ")
}
- components๋ฅผ ์ด์ฉ, ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด s๋ฅผ ๋๋ ์ ๋ฐฐ์ด๋ก ์์ฑํ๋ค.
- ๋ฐฐ์ด ์์์ ์ง์์ ํด๋นํ๋ ๊ธ์๋ ๋๋ฌธ์๋ก, ํ์๋ ์๋ฌธ์๋ก ๋ฐ๊ฟ์ฃผ์๋ค.
- ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด์ joined ํด์ฃผ์๋ค.
์ธ์์ ์ธ ํ์ด
import Foundation
func solution(_ s:String) -> String {
let a = s.components(separatedBy: " ").map { $0.enumerated().map { $0.offset % 2 == 0 ? $0.element.uppercased() : $0.element.lowercased() } }
return a.map{ $0.map { $0 }.joined() }.joined(separator: " ")
}
- components, map, enumerated ๋ฑ,, ๋ค์ํ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ค๋ก ๋๋๋ค.
- ์ฌ์ค ๊ฐ๋
์ฑ ์ธก๋ฉด์์ ๋ดค์ ๋ ์ข์ ์ฝ๋์ธ์ง๋ ํ์ค์น ์์ง๋ง
ํจ์๋ค์ ๋ค์ํ ํ์ฉ์ ๋ํด ๊ณต๋ถํ๊ธฐ ์ข์์ ๊ฐ์ ธ์ ๋ดค๋ค.
๐ก ํผ๋๋ฐฑ
- ์ข ๋ ๊ฐ๊ฒฐํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ๋ค์ํ๊ฒ ํจ์๋ฅผ ์ฌ์ฉํ๋๋ฐ์ ์์ด์ ๊ณต๋ถ๊ฐ ๋ ํ์ํ ๊ฒ ๊ฐ๋ค.
๐ [ ์ถ๊ฐ ] 1์ฃผ์ผ ํ ๋ค์ ํ์ด๋ณด๊ธฐ
func solution2(_ s:String) -> String {
var result = ""
var count = 0
for i in s {
if i == " " {
result.append(" ")
count = 0
}
else {
count % 2 == 0 ? result.append(String(i.uppercased())) : result.append(String(i.lowercased()))
count += 1
}
}
return result
}
- ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด ๊ทธ ์์ฒด์์, ๊ณต๋ฐฑ์ธ์ง ์๋์ง๋ฅผ ๊ฒ์ฌํ์๋ค.
- ๊ณต๋ฐฑ์ด ์๋๋๋ ์คํธ๋ง ์์์์ ์ง, ํ์ ํ๋ณํ์ฌ
์ง์๋ฒ์งธ์ ๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ๋ณ๊ฒฝํด์ฃผ๋ ์์ ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ์์ฑํ๋ค. - ๊ตณ์ด ๋ฐฐ์ด์ ๋ฐ๋ก ์์ฑํ์ง ์์๊ณ , ๊ทธ์ ๋ฐ๋ผ components ํจ์๋ฅผ ์ฌ์ฉํ ์ด์ ๋ ์๊ธฐ์
์ฒซ ๋ฒ์งธ ํ์ด๋ณด๋ค ๋ ๊น๋ํ๊ฒ ํ ์ ์์๋ ๊ฒ ๊ฐ๋ค.
๋ฌธ์
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ์์ ์ํธ Programmers(Lv.1) (0) | 2021.06.14 |
---|---|
[Swift Algorithm] ์ฝ์์ ํฉ Programmers(Lv.1) (0) | 2021.06.14 |
[Swift Algorithm] ์๋ฆฟ์ ๋ํ๊ธฐ Programmers(Lv.1) (0) | 2021.06.14 |
[Swift Algorithm] ์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ Programmers(Lv.1) (0) | 2021.06.14 |
[Swift Algorithm] ์ฝ๋ผ์ธ ์ถ์ธก Programmers(Lv.1) (0) | 2021.06.14 |
๋๊ธ