본문 바로가기

 𝗔𝗣𝗣𝗟𝗘/ALGORITHM

[내일배움캠프] 데일리 루틴(iOS_3회차) - 크기가 작은 부분

이미지를 클릭하면 코딩테스트 페이지로 이동합니다

 

내 풀이

import Foundation

func solution(_ t:String, _ p:String) -> Int {
    let len = p.count
    var answer = 0
    
    for i in 0..<t.count-len+1 {
        let startIndex = t.index(t.startIndex, offsetBy: i)
        let endIndex = t.index(t.startIndex, offsetBy: i+len-1)
        let range = startIndex...endIndex
        
        if Int64(t[range])! <= Int64(p)! {
            answer += 1
        }
    }
    return answer
}

 

- p의 길이를 구하고, 결과값을 저장할 변수 answer 초기화

- 문자열 t를 순회하면서 p와 길이가 같은 부분 문자열을 찾기

   이를 위해 t의 길이에서 p의 길이를 빼고 1을 더한 값까지 순회

- 각 부분 문자열의 시작 인덱스를 계산하여 startIndex으로 설정, 해당 부분 문자열의 끝 인덱스를 계산하여 endIndex로 설정

- startIndex부터 endIndex까지의 범위를 나타내는 range 설정

- range에 해당하는 부분 문자열을 Int64로 변환하여 p와 비교

   만약 부분 문자열이 p보다 작거나 같으면 answer 증가

- 최종적으로 구한 answer를 반환

Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31