Foma's 풀이
1.공백 기준으로 단어를 나눠준다. components 메소드 사용
2.나눈 단어의 맨 첫번째 글자를 대문자로 바꿔준다. uppercased 메소드 사용
3.공백으로 다시 연결시켜준다. -> joined 메소드 사용
공백을 기준으로 나눈 단어들을 담을 words를 만들어줍니다. -> let words = s.components(separatedBy: " ")
words안에 단어들의 글자들을 담을 characters를 만들어줍니다. -> var charaters = Array(repeating: [String](), count: words.count)
단어들을 연결시켜줄 answer를 만들어줍니다. -> var answer = Array(repeating: String(), count: words.count)
for문을 이용해 words안에 단어의 갯수만큼 반복해줍니다. -> for w in 0..<words.count {...}
characters를 words의 글자를 모두 소문자로 바꾼것으로 넣어줍니다. (첫번째 글자빼고 모두 소문자가 되어야하므로)
-> charaters[w] = words[w].map{String($0).lowercased()}
characters배열이 비어있지 않다면 charaters의 첫번째 글자를 대문자로 바꿔줍니다. -> if charaters[w] != [] {
charaters[w][0] = charaters[w][0].uppercased()
}
answer에 characters의 글자들을 연결시켜준 값을 넣어줍니다. -> answer[w] = charaters[w].joined(separator: "")
마지막으로 answer안의 배열들을 공백 기준으로 연결시켜 반환해줍니다. -> return answer.joined(separator: " ")
전체코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import Foundation
func solution(_ s:String) -> String {
let words = s.components(separatedBy: " ")
var charaters = Array(repeating: [String](), count: words.count)
var answer = Array(repeating: String(), count: words.count)
for w in 0..<words.count {
charaters[w] = words[w].map{String($0).lowercased()}
if charaters[w] != [] {
charaters[w][0] = charaters[w][0].uppercased()
}
answer[w] = charaters[w].joined(separator: "")
}
return answer.joined(separator: " ")
}
|
'📖 Problem Solution > Programmers' 카테고리의 다른 글
프로그래머스 예상 대진표 Swift (0) | 2020.10.17 |
---|---|
프로그래머스 점프와 순간이동 Swift (0) | 2020.10.16 |
프로그래머스 N개의 최소공배수 Swift (0) | 2020.10.09 |
프로그래머스 피보나치 수 Swift (0) | 2020.10.09 |
프로그래머스 행렬의 곱셈 Swift (0) | 2020.10.05 |
댓글