일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Timer
- font book
- UICollectionViewFlowLayout
- WeatherManager
- 러닝기록앱
- 클로저의 캡슐화
- Required Reason API
- RunningTimer
- 단일 책임원칙
- weatherKit
- UIAlertAction
- MKMapViewDelegate
- dispatchsource
- swift
- AnyObject
- 러닝타이머
- MKMapItem
- 영문 개인정보처리방침
- 서체관리자
- App Store Connect
- Startign Assignments
- xcode로 날씨앱 만들기
- Protocol
- CLLocationManagerDelegate
- CoreLocation
- weak var
- Xcode
- 한국어 개인정보처리방침
- SwiftUI Boolean 값
- addannotation
Archives
- Today
- Total
VesselWheel
이상한 문자 만들기 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12930
코드
func solution(_ s:String) -> String {
var arr: [String] = []
var x = 0
for i in s {
if x % 2 == 0 {
arr.append(String(i.uppercased()))
} else {
arr.append(String(i.lowercased()))
}
x += 1
if i == " " {
x = 0
}
}
return arr.joined()
}
해석
더보기
1. 문자열이므로 배열을 초기화하고, 임의 값 x 를 0으로 초기화 하여 시작한다.
var arr: [String] = []
var x = 0
2. 내가 엊고자하는 배열에 x 번째 문자를 2로 나누었을 때, 나머지가 0이면 짝수, 나머지가 0이 아니면 홀수이므로,
짝수면 대문자, 홀수면 소문자로 변환하여 배열에 String 값으로 넣어준다.
for i in s {
if x % 2 == 0 {
arr.append(String(i.uppercased()))
} else {
arr.append(String(i.lowercased()))
}
3. 문자열에서 순회할때마다(for 문), x 번째 문자는 1개씩 증가하며 반복한다.
x += 1
4. 그리고, 순회중인 문자 i가 공백문자자라면 == s 라는 문자열이 들어가 있지 않다면, x = 0 ==> 첫 시작은 0 즉 짝수번째 알파벳으로 처리하여 대문자(uppercased())로 변환한다.
if i == " " {
x = 0
}
5. String으로 반환되어야 할 값은 배열 arr를 모두 합쳐준다(joined())
return arr.joined()
'Coding Test Practice in Swift' 카테고리의 다른 글
크기가 작은 부분문자열 (0) | 2024.02.22 |
---|---|
삼총사 (considering 시간복잡도) / 시간복잡도를 고려하니 중복값 문제 발생 (0) | 2024.02.20 |
3진법 뒤집기 (1) | 2024.02.02 |
최대공약수와 최소공배수(feat. 유클리드 호제법) (1) | 2024.01.26 |
직사각형 별찍기 in Swift (0) | 2024.01.18 |