오늘의 TIL은 알고리즘 한 문제 풀이다
문자열을 다루는 문제처럼 보인다
일단 처음에 문제를 접근하는 방식은
1. t문자열에서 p문자열 크기만큼의 부분문자열을 만들어서 새 배열에 저장
2. 저장된 배열에서 p보다 값이 작은 것 개수를 세기
3. 2에서 센 개수를 반환!
이렇게 보면 간단한 것 같지만
swift는 파이썬 처럼 문자열 인덱싱을 편하게 할 수 없어서
일단 배열로 변경해주고 하는 것이 편하다.
처음에는 filter
메서드를 사용하려 했는데
작성하다보니 명확한 작성법이 떠오르지 않아서
그냥 단순 비교하는 법으로 했다.
func solution(_ t:String, _ p:String) -> Int {
let pValue = Int(p)!
var count = 0
let tArr = Array(t)
for i in 0...(tArr.count - p.count) {
let subStr = String(tArr[i..<i + p.count])
if let subValue = Int(subStr), subValue <= pValue {
count += 1
}
}
return count
}
t, p 문자열 둘다 필요한 형태로 변환해서 사용했다
풀긴 풀었지만 완전히 내것이 된 느낌이 없어서
추후에 다시 풀어봐야할것같다.
요즘 알고리즘 풀이가 좀 게을러 졌는데
계속 컨디션이 난조인것도 있지만 좀 더 부지런히 시간 활용을 해야겠다