내 풀이
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를 반환
' 𝗔𝗣𝗣𝗟𝗘 > ALGORITHM' 카테고리의 다른 글
[내일배움캠프] 데일리 루틴(iOS_3회차) - 시저 암호 (0) | 2024.03.06 |
---|---|
[내일배움캠프] 데일리 루틴(iOS_3회차) - 최소 직사각형 (2) | 2024.03.05 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 삼총사 (0) | 2024.02.29 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 3진법 뒤집기 (0) | 2024.02.28 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 이상한 문자 만들기 (0) | 2024.02.28 |