본문 바로가기

CS/알고리즘

[230413] 크기가 작은 부분문자열

반응형

 

문제

 

 

풀이

function solution(t, p) {
    let answer = 0;
    
    for(let i = 0; i < t.length - p.length + 1; i++) {
        const tNum = t.slice(i, i + p.length); 
        if(+tNum <= +p) answer++;
    }
    return answer;
}

예제 1에서는 314, 141, 415, 159, 592 와 같이 순서대로 문자열을 뽑아와야 한다.

 

끝에서 - p.length 까지 가져와야 하므로, for 반복문 내에 조건은 i = 0; t.length - p.length + 1; i++이 된다.

그리고 314, 141, 415, … 와 같은 숫자를 만든다. 그 숫자는 t 문자열에서 i 부터 i + p.length - 1 까지 자른 문자열이 된다. 그래서 t.slice(i, i + p.length) 가 된다.

 

그렇게 만든 tNum과 p를 비교하고, p가 같거나 크면 answer를 더한다.

 

반복문을 끝내면 answer 를 반환한다.

 

 

 

다른 풀이에서도 동일하게 풀었더라.

반응형

'CS > 알고리즘' 카테고리의 다른 글

[230414] N개의 최소공배수  (0) 2023.04.14
[230414] 예상 대진표  (0) 2023.04.14
[230412] 카펫  (0) 2023.04.12
[230411] 피보나치 수  (0) 2023.04.11
[230327] 구명보트: Greedy 알고리즘  (0) 2023.03.27