본문 바로가기
📖 Problem Solution/Programmers

프로그래머스 JadenCase 문자열 만들기 Swift

by Fomagran 💻 2020. 10. 10.
728x90
반응형
 

코딩테스트 연습 - JadenCase 문자열 만들기

JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건

programmers.co.kr

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: " ")
}

 

 

728x90
반응형

댓글