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

이창형·2023년 2월 27일
0

코드

import Foundation

func solution(_ t:String, _ p:String) -> Int {
	// p의 길이를 저장
    let len = p.count
    // 뽑은 숫자가 p보다 작거나 같으면 1씩 늘려서 카운팅하기 위해
    var answer = 0
    
    // for문으로 모든 경우의 수 확인
    // 주의!!!! -len + 1을 하여 t의 인덱스를 넘어가지 않게 방지
    for i in 0..<t.count-len+1 {
    	// 검색하여 공부한 결과 swift는 이런식으로
        // string 인덱스를 설정하여 뽑아올 수 있다
        let startIndex = t.index(t.startIndex, offsetBy: i)
        let endIndex = t.index(t.startIndex, offsetBy: i+len-1)
        let range = startIndex...endIndex
        
        // 문제에서 최대길이가 10000자리의 숫자기 때문에 Int64로 설정을 해주었다
        // 안해주면 런타임 오류!!
        if Int64(t[range])! <= Int64(p)! {
            answer += 1
        }
    }
    return answer
}

회고

  • swift의 index 범위 설정과 Int 범위 설정을 몰라서 고생을 좀 했다
  • 고생한만큼 성장한 것 같아서 기분 좋다
profile
iOS Developer

0개의 댓글