-
[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