크기가 작은 부분문자열_Java

컴투루·2023년 2월 2일
0

프로그래머스 Lv.1

목록 보기
36/38

프로그래머스 Lv.1

🔥 크기가 작은 부분문자열 🔥


👀 문제

숫자로 이루어진 문자열 t와 p가 주어진다.
t에서 p와 길이가 같은 부분문자열 중 p보다 작거나 같은 것이 나오는 횟수를 return하는 solution을 완성하자.


✔️ 조건

  • 1 ≤ p의 길이 ≤ 18
  • p의 길이 ≤ t의 길이 ≤ 10,000
  • t와 p는 숫자로만 이루어진 문자열로 0으로 시작하지 않음

👩‍💻 입력 & 🧙 출력

tpresult
"3141592"]"271"2
"500220839878""7"8
"10203""15"3

🙋‍♀️ 풀이

import java.util.*;

class Solution {
    public long solution(String t, String p) {
        int pl = p.length();
        int tl = t.length();
        long answer = 0;
        long cnt = 0;
        
        while(pl+cnt <= tl){
            int startIdx = 0;
                startIdx += cnt;
                String com = t.substring(startIdx,pl+startIdx);
                if(Long.parseLong(com) <= Long.parseLong(p)){
                    answer++;            
                }   
            cnt++;
        }
        return answer;
    }
}

💬 다른 풀이

class Solution
{
    public int solution(String t, String p)
    {
        int answer = 0;

        for(int i=0; i<=t.length()-p.length(); i++)
            if(Long.parseLong(t.substring(i, i+p.length())) <= Long.parseLong(p))
                answer++;

        return answer;
    }
}

👏 마무리

무작정 풀기보다는 깔끔하게

profile
맘 먹으면 못할 게 없지

0개의 댓글