프로그래머스

[JavaScript] 크기가 작은 부분 문자열 - 프로그래머스

jjangsh 2024. 8. 28. 22:15

문제 :

 

내 풀이 :

function solution(t, p) {
    let cnt = 0;

    for(let i = 0; i <= t.length - p.length; i++) {
        if(Number(t.slice(i, i + p.length)) <= Number(p)) {
            cnt++;
        }
    }
    return cnt;
}

 

 

주어진 함수 solution은 문자열 t에서 문자열 p와 같은 길이의 부분 문자열을 찾아, 해당 부분 문자열이 p보다 작거나 같은 경우의 수를 계산합니다. 이 코드의 동작 방식은 다음과 같다.

 

 

  • cnt 변수는 조건을 만족하는 부분 문자열의 개수를 세기 위한 변수로 초기값은 0입니다.
  • for 루프는 t 문자열에서 p 문자열의 길이만큼의 부분 문자열을 추출하기 위해 사용됩니다. 루프는 t의 처음부터 t.length - p.length 인덱스까지 반복합니다.
  • slice 메서드를 사용하여 t에서 현재 인덱스 i부터 i + p.length까지의 부분 문자열을 추출합니다.
  • 이 부분 문자열과 p를 숫자로 변환한 후, 비교하여 p보다 작거나 같은 경우 cnt를 1 증가시킵니다.
  • 루프가 끝나면 cnt 값을 반환합니다.

예를 들어, t가 "12345"이고 p가 "34"인 경우:

  • 첫 번째 부분 문자열은 "12"로, 34보다 작습니다. (카운트 +1)
  • 두 번째 부분 문자열은 "23"로, 34보다 작습니다. (카운트 +1)
  • 세 번째 부분 문자열은 "34"로, 34와 같습니다. (카운트 +1)
  • 네 번째 부분 문자열은 "45"로, 34보다 큽니다. (카운트 변동 없음)
  • 따라서, 결과는 3입니다.