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

fsm12·2023년 6월 5일
0

프로그래머스

목록 보기
2/57
post-thumbnail

문제링크

문제 이해

[ 입력형태 / 조건 ]

inp_t
숫자로 구성된 문자열 | "3141592" | 길이는 최대 10,000

inp_p
숫자로 구성된 문자열 | "271" | 길이는 최대 18
=> int의 최댓값인 21억 글자수 보다 큰 값이므로 long으로 관리해야 함

[ 문제 ]

=> t 문자열에서 p 문자열 길이만큼 가져왔을 때, 해당 문자열이 p보다 작거나 같은 횟수를 return

[ 풀이 ]

반복문으로 t에서 p길이만큼 substring을 이용해서 가져오고 이를 정수형으로 변환하여 비교 후 카운트



코드

class Solution {
    public int solution(String t, String p) {
        int answer = 0;
        int pLen = p.length();
        long p_long = Long.parseLong(p);
        for(int i=0; i<t.length()-pLen+1; i++){
            if(Long.parseLong(t.substring(i,i+pLen)) <= p_long){
                answer+=1;
            }
        }
        return answer;
    }
}

TIP : int형의 범위가 [-21억, 21억] 이고, 최대 9글자인 숫자로 구성된 문자열만 int형으로 변환이 가능함을 알아두자

0개의 댓글