프로그래머스 > 3. 크기가 작은 부분 문자열

SeiLyn·2023년 9월 15일

프로그래머스

목록 보기
3/6

❓ 문제

프로그래머스 Level 1 연습문제 > 카드 뭉치

❗ 해결

문자열을 p의 길이만큼 자르면서, 자르는 시작점을 1씩 더해서 잘라줘야 한다.
즉 '12345'이고 p의 길이가 2이면 12,23,34,45 이렇게 네 개의 숫자가 나와야 한다.
먼저 t의 시작 index를 나타내는 front index는 0부터 시작하도록 한다.
다음, p의 길이를 나타내는 변수 end index는 p의 길이만큼이 된다.

t라는 문자열을 반복하면서, front index, end index를 각각 1씩 늘려가면서 문자열을 자르면 된다.
그리고 p가 세 자리 이상 부터는 문자열을 자르다가 t 문자열의 끝을 만나면 해당 p의 길이만큼 자르지 못하고 p보다 작은 길이를 잘라야 하니
앞에 t라는 문자열을 잘랐을 때, p의 길이보다 작은 경우에는 break문을 추가하여 반복문을 탈출해주도록 한다.

문자열을 자르면서, 자른 문자열과 p 문자열을 parseInt() 메소드를 사용하여 숫자로 변환하여 비교한 후, 작거나 같은 수에 해당하면 result에 1씩 더해주면 된다.

✅코드

function solution(t, p) {
    
    let f_idx = 0;
    let e_idx = p.length;
    
    let result = 0;
    
    for (let i = f_idx, j = e_idx; i < t.length; i++, j++) {
        if (t.slice(i,j).length < e_idx){
            break;
        }
        if (parseInt(t.slice(i, j)) <= parseInt(p)) {
            result++;
        }
    }
    
    return result;
}

0개의 댓글