코딩 테스트/프로그래머스
[프로그래머스] (Swift) 크기가 작은 부분 문자열 - Lv.1
Dev.Andy
2023. 5. 11. 23:55
코딩테스트 연습 - 크기가 작은 부분 문자열 | 프로그래머스 스쿨
풀이
문자열을 배열로 분리
- 매개변수 t의 숫자를, 문자열 타입의 숫자로 하나로 분리한 배열로 변환한다
- 반복문에 필요한 범위와 부분문자열의 길이를 할당한다
- 부분문자열이 p보다 작거나 같으면 결괏값을 1 증가시킨다
코드
import Foundation
func solution(_ t:String, _ p:String) -> Int { // solution("3141592", "271")
// 매개변수 t의 숫자를, 문자열 타입의 숫자로 하나로 분리한 배열로 변환
let stringArray = Array(t).map { String($0) } // ["3", "1", "4", "1", "5", "9", "2"]
// 결괏값을 0으로 초기화
var count = 0
// 반복문에 필요한 범위와 부분문자열의 길이를 할당
let range = t.count - p.count + 1
let offset = p.count - 1
for i in 0..<range {
// 부분문자열 할당
let subString = stringArray[i...i+offset].joined() // "314", "271", ...
// 부분문자열이 p보다 작거나 같으면 결괏값을 1 증가
if Int(subString)! <= Int(p)! {
count += 1
}
}
// 결괏값 반환
return count
}