Programmers/Lv. 1

[Kotlin] Programmers Lv. 1 크기가 작은 부분 문자열

chattymin 2023. 9. 16. 12:10
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/147355

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

Code


class Solution {
    fun solution(t: String, p: String): Int {
        var answer: Int = 0
        var pLen = p.length

        for (i in 0 .. t.length - pLen){
            if (t.substring(i until i + pLen) <= p)
                answer++
        }

        return answer
    }
}

사실 문제를 보는 순간 로직은 생각이 났다. 근데 더 좋은 방법이 있을까 고민을 좀 했다.

근데 더 좋은 방법이 생각이 안나서 위와 같은 방법을 사용했다.

 

어차피 p의 길이만큼 잘라서 확인을 하면 되기 때문에 t를 p의 길이만큼 자르고, 비교를 진행하면 된다.

 

이때 처음에는 문자열을 자르는데 slice를 사용했다가 substring으로 바꿔서 다시 작성해봤다.
유의미하진 않지만, 약간 더 빠른거 같아서 substring을 최종적으로 사용했다.

 

자르고 비교하는 과정에서 굳이 toInt를 사용하지 않아도 된다. 어차피 String또한 비교가 가능하기 때문에 바로 비교했다.

728x90
반응형