본문 바로가기
코딩 테스트/프로그래머스

[프로그래머스] (Swift) 크기가 작은 부분 문자열 - Lv.1

by Dev.Andy 2023. 5. 11.

프로그래머스 문제 이미지 - 크기가 작은 부분 문자열 - Lv.1

코딩테스트 연습 - 크기가 작은 부분 문자열 | 프로그래머스 스쿨

 

풀이

문자열을 배열로 분리

  1. 매개변수 t의 숫자를, 문자열 타입의 숫자로 하나로 분리한 배열로 변환한다
  2. 반복문에 필요한 범위와 부분문자열의 길이를 할당한다
  3. 부분문자열이 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
}

 

댓글