반응형
/* 문자열 밀기
- 문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 몇 번 밀어야 하는지 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
*/
extension String {
subscript(_ range: CountableRange<Int>) -> String {
let start = index(startIndex, offsetBy: max(0, range.lowerBound))
let end = index(start, offsetBy: min(self.count - range.lowerBound,
range.upperBound - range.lowerBound))
return String(self[start..<end])
}
subscript(_ range: CountablePartialRangeFrom<Int>) -> String {
let start = index(startIndex, offsetBy: max(0, range.lowerBound))
return String(self[start...])
}
}
func solution16(_ A:String, _ B:String) -> Int {
if A == B {
return 0
}
var count:Int = 0
var str:String = A
while count < A.count {
count += 1
str = String(str[(str.count-1)...]) + str
str = str[0..<str.count-1]
if str == B {
return count
}
}
return -1
}
반응형
'# 02 > Swift - CTP' 카테고리의 다른 글
[Swift] 코딩테스트 연습! Lv0. 연속된 수의 합 (0) | 2022.11.25 |
---|---|
[Swift] 코딩테스트 연습! Lv0. 종이 자르기 (0) | 2022.11.25 |
[Swift] 코딩테스트 연습! Lv0. 잘라서 배열로 저장하기 (0) | 2022.11.25 |
[Swift] 코딩테스트 연습! Lv0. 제곱수 판별하기 (0) | 2022.11.25 |
[Swift] 코딩테스트 연습! Lv0. OX퀴즈 (0) | 2022.11.25 |