ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Swift] 크기가 작은 부분 문자열
    Coding Test 2023. 11. 15. 22:17
    import Foundation
    
    func solution(_ t:String, _ p:String) -> Int {
    	// p의 길이
        let len = p.count
        var answer = 0
        
        // for문으로 모든 경우의 수 확인
        // 주의!!!! -len + 1을 하여 t의 인덱스를 넘어가지 않게 방지
        for i in 0..<t.count-len+1 {
            // 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
    }

     

    t에서 길이만큼 빼고 구하고 ..<이므로 +1

    실질적으로는 포함 안됨!

    ...인지 <인지 구별할 것 

     for i in 0..<t.count-len+1 {}

     

     

    t문자열에서 범위에 해당하는 값을 꺼낸다. 

    // 문제에서 최대길이가 10000자리의 숫자기 때문에 Int64로 설정
            // 안해주면 런타임 오류
            if Int64(t[range])! <= Int64(p)! {
                answer += 1
            }​

     

    Int64란?

    비트를 의미한다. 

    // Int8 : -128 ~ 127
    // Int16 : -32768 ~ 32767
    // Int32 : -2147483648 ~ 2147483647
    // Int64 : -9223372036854775808 ~ 9223372036854775807

     

    -> 10000자리 이내면 Int16해도 되는 것 아닐까? 

    No.

    t의 길이가 10000 이내라고 했지, 수가 10000 이내라고는 안했다.

    'Coding Test' 카테고리의 다른 글

    [Swift] 재귀 알고리즘  (0) 2023.11.28
    정렬 알고리즘: 버블정렬, 선택정렬  (1) 2023.11.19
    [Swift] 소수 판별  (1) 2023.11.14
    [Swift] 내적  (0) 2023.11.12
    [Swift] 음양 더하기  (0) 2023.11.06
Designed by Tistory.