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

[프로그래머스] (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
}

 

댓글