일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 단일 책임원칙
- RunningTimer
- addannotation
- dispatchsource
- WeatherManager
- 클로저의 캡슐화
- Startign Assignments
- swift
- font book
- MKMapItem
- 러닝타이머
- xcode로 날씨앱 만들기
- UIAlertAction
- CLLocationManagerDelegate
- Xcode
- Timer
- 한국어 개인정보처리방침
- CoreLocation
- AnyObject
- Required Reason API
- weatherKit
- 러닝기록앱
- weak var
- 영문 개인정보처리방침
- UICollectionViewFlowLayout
- Protocol
- MKMapViewDelegate
- App Store Connect
- 서체관리자
- SwiftUI Boolean 값
Archives
- Today
- Total
VesselWheel
이상한 문자 만들기 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12930
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
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 |