서은파파의 추월차선

[알고리즘/프로그래머스] 크기가 작은 부분 문자열 본문

Algorithm

[알고리즘/프로그래머스] 크기가 작은 부분 문자열

seoeunpapa 2025. 2. 1. 00:21
728x90

 

문제와 입출력 예제는 다음 그림과 같다.

 

 

해당 문제는 난이도가 1레벨이고 쉬운 문제지만 기본기와 놓치기 쉬운 에러를 잡는데 도움이 된다.

 

최초 답안지

class Solution {
    public int solution(String t, String p) {
        int answer = 0;
        int tlen = t.length();
        int plen = p.length();
        int parseP = Integer.parseInt(p);
        
        for(int i=0; i<=tlen-plen; i++) {
            int result = Integer.parseInt(t.substring(i,i+plen));
            if(result <= parseP) answer++;
        }

        return answer;
    }
}

 

 

위 소스로 제출하니 테스트케이스는 잘 맞았지만, 최종 제출 시 런타임 에러가 몇개 씩 발견 되었다.

가만히 이유를 생각해보니 문자열의 길이가 최대 10,000이지 1만 자리의 문자열을 숫자로 표현한다면

int 형으로는 불가하다는 점을 바로 생각하지 못했다. (자료형을 실수하지 말자!!)

int 대신 long 으로 수정 후 답을 제출하니 성공적으로 모든 케이스를 정답시킬 수 있었다.

 

 

 

최종 답안지

class Solution {
    public int solution(String t, String p) {
        int answer = 0;
        int tlen = t.length();
        int plen = p.length();
        long parseP = Long.parseLong(p);
        
        for(int i=0; i<=tlen-plen; i++) {
            long result = Long.parseLong(t.substring(i,i+plen));
            if(result <= parseP) answer++;
        }

        return answer;
    }
}

 

728x90