-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
💬 문제
[코딩테스트 연습 - 크기가 작은 부분 문자열](https://school.programmers.co.kr/learn/courses/30/lessons/147355)
💬 Idea
- swift는 문자열을 다루기 쉽지 않기에 우선 문자열을 배열로 변환하여 문제를 풀어야겠다고 생각했다.
- Array의 인덱싱을 활용하여
p.count + index의 값이 t.count보다 작거나 같은 경우에만
t의 부분 배열을 쪼개어 String으로 join해주었다.
⇒ Index out of range를 방지하기 위함 - 이 부분문자열이 나타내는 수가
p
가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 구하기 위해
Array(t)[index..<index + p.count].map({ String($0) }).joined() <= p 인 경우에만 result에 횟수를 더해주었다.
💬 풀이
func solution(_ t:String, _ p:String) -> Int {
var result = 0
for (index, _) in Array(t).enumerated() {
if index + p.count <= t.count {
// ✅ joined() -> 차례로 "314" , "141", "415", "159", "592" 로 변환.
// ✅ 해당 값이 p보다 작거나 같은 경우에만 result += 1 하여 해답 도출!
if Array(t)[index..<index + p.count].map({ String($0) }).joined() <= p {
result += 1
}
}
}
return result
}
소요시간
: 10분 43초