본문 바로가기
Problem Solving

[Swift] 프로그래머스 JadenCase 문자열 만들기(lv. 2)

by DuncanKim 2023. 2. 27.
728x90

[Swift] 프로그래머스 JadenCase 문자열 만들기(lv. 2)

 

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/12951

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

2. 접근

첫 문자만 대문자이고, 나머지는 소문자인 문자열을 만들면 된다. 숫자가 맨 처음 문자이면 숫자는 그대로 쓰면 된다. 문자열 처리하는 문제이기 때문에, components를 잘 활용하고, 첫 문자가 문자인지 숫자인지 구별해서 잘 처리해주면 된다.

 

만약 첫문자가 숫자라면, 단순히 lowercased()로만 해도 충분하지만, 맨 처음 문자가 문자라면, 첫 문자는 대문자로 만들어주어야 한다. 아래 코드의 반복문 내부의 조건문은 각 단어의 첫 글자가 '문자'일 경우, 임시 변수를 활용해서 하나의 글자만 대문자로 만들어서 바꾸어준다.

 

마지막에 array를 joined() 하면 하나의 문자열로 붙어서 나오게 된다.

 

단순한 문자열 처리 문제였다.

 

 

3. 코드

import Foundation

func solution(_ s:String) -> String {
    var array = s.components(separatedBy: " ").map({ $0.lowercased() })
    var j = 0
    for i in array {
        if i.first?.isLetter != nil {
            var temp = Array(i)
            temp[0] = Character(String(temp[0]).uppercased())
            array[j] = String(temp)
        }
        j += 1
    }
    return array.joined(separator: " ")
}
728x90

댓글