본문 바로가기
코딩 테스트/프로그래머스

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

by Dev.Andy 2023. 4. 25.

📌 문제

프로그래머스 문제 이미지 - JadenCase 문자열 만들기

코딩테스트 연습 - JadenCase 문자열 만들기 | 프로그래머스 스쿨

 

📌 풀이

풀이의 핵심은 3가지이다.

  1. 문자열의 인덱스에 대한 반복문
  2. 대문자로 만들어야 할 조건에 대한 flag
  3. 문자열 인덱스 값에 대한 조건 3가지
  • 조건 1: 공백일 때 → 공백을 결괏값에 추가
  • 조건 2: flag가 1보다 클 때 → 대문자로 변환하여 결괏값에 추가
  • 조건 3: flag가 1보다 작을 때 → 소문자로 변환하여 결괏값에 추가

 

📌 코드

Swift에서 문자열에 대한 인덱스 접근이 까다로워 애를 먹었다. 인덱스 하나 접근하는데 저리 복잡한 메서드가 필요하다니...

 

func solution(_ s:String) -> String {
    // 필요한 변수 초기화
    var flag = 1
    var result = ""
    
    // 문자열의 인덱스만큼 반복
    for index in 0..<s.count {
        // 문자열의 인덱스 할당
        let i = s.index(s.startIndex, offsetBy: index)
        
        // (1) 공백일 경우 flag에 1 증가하여 결괏값에 공백 추가
        // (2) flag가 1보다 크거나 같을 경우 대문자로 만들어 결괏값에 추가 및 flag를 0으로 초기화
        // (3) flag가 1보다 작을 경우 소문자로 만들어 결괏값에 추가
        if s[i] == " " {
            result += " "
            flag += 1
            continue
        } else if flag >= 1 {
            result += s[i].uppercased()
            flag = 0
        } else {
            result += s[i].lowercased()
        }
    }
    
    // 결괏값 출력
    return result
}

 

댓글