📌 문제
코딩테스트 연습 - JadenCase 문자열 만들기 | 프로그래머스 스쿨
📌 풀이
풀이의 핵심은 3가지이다.
- 문자열의 인덱스에 대한 반복문
- 대문자로 만들어야 할 조건에 대한 flag
- 문자열 인덱스 값에 대한 조건 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
}
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] (Swift) 다음 큰 숫자 - Lv.2 (0) | 2023.05.01 |
---|---|
[프로그래머스] (Swift) 이진 변환 반복하기 - Lv.2 (0) | 2023.04.28 |
[프로그래머스] (Swift) 문자열 내림차순으로 배치하기 - Lv.1 (0) | 2023.04.20 |
[프로그래머스] (Swift) 제일 작은 수 제거하기 - Lv.1 (0) | 2023.04.18 |
프로그래머스) signal: illegal instruction (core dumped) 원인과 해결 (Swift 오류) (0) | 2023.04.14 |
댓글