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

Bluewave·2024년 8월 9일

코테공부_java

목록 보기
48/99
post-thumbnail

문제

✨ 문제 바로가기

문제레벨정답률
크기가 작은 부분 문자열Lv.176%

초기코드

public int solution(String t, String p) {
        int answer = 0;
        
        for(int i = 0; i<t.length()-p.length()+1; i++){
            String str = "";
            for(int j = i; j<i + p.length(); j++){
                str += t.charAt(j);
            }
            
            try{
                if(Integer.parseInt(str) <= Integer.parseInt(p)){
                    answer++;
                }
            }catch(Exception e){
                
            }
            
        }
        
        return answer;
    }

-> 일부 런타임 에러 발생
로직 상의 오류는 없어보이는데 런타임 에러가 발생해서 알아보니
경우에 따라 타입 오류가 발생할 수 있고, 혹은 타입으로 인해 원하는 결과가 나오지 않을 수도 있다는 것을 알게 되었다.

해결 코드

class Solution {
    public int solution(String t, String p) {
        int answer = 0;
        long pp = Long.parseLong(p);
        
        for(int i = 0; i<t.length()-p.length()+1; i++){
            String str = t.substring(i, i+p.length());
            
            try {
            long num = Long.parseLong(str); // 부분 문자열을 long으로 변환
            if (num <= pp) {
                answer++;
            }
            } catch (NumberFormatException e) {
            
            }
    
            
        
        }
        return answer;
    }
}

-> 결과적으로 바뀐 점은 하나. int 타입을 long 타입으로 변환하였다.
로직 상에 오류가 없어보인다면 타입을 넓혀보자..

profile
Developer's Logbook

0개의 댓글