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

이찬혁·2023년 12월 28일

알고리즘

목록 보기
3/72

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

substring으로 문자열을 자르면 될 것 같았지만 다른 방법이 없을까 고민 하는데에 시간이 걸린 문제이다. 결국 substring으로 풀어내고, 다른 사람의 풀이를 보았는데 대부분 다 substring으로 문제를 해결했더라!

일정이 있어 급하게 풀어내느라 while(true)를 사용했는데 코드에서 제일 거슬리는 부분이다..

Substring.java

package com.example.Programmers.Lv1;

/**
 * 프로그래머스 Lv1 - 크기가 작은 부분문자열 
 */
public class Substring {
    public int solution(String t, String p) {
        int answer = 0;
        long loopMax = t.length();
        long part = p.length();
        long index = 0;
        
        while(true) {
            // t String의 범위를 넘어갈 경우 반복 종료              
            if(index + part > loopMax) {
                break;
            }
            // 부분문자열 구한 후 p와 값 비교
            String result = t.substring((int) index, (int) (part + index));
            if(Long.parseLong(result) <= Long.parseLong(p)) {
                answer++;
            }
            index++;
        }
        return answer;
    }
}

SubstringTest.java

package com.example.Programmers.Lv1;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class SubstringTest {
    @Test
    public void substringTest() {

        Substring ss = new Substring();
        int result1 = ss.solution("3141592", "271");
        int result2 = ss.solution("500220839878", "7");
        int result3 = ss.solution("10203", "15");

        assertEquals(2, result1);
        assertEquals(8, result2);
        assertEquals(3, result3);
    }
}
 
profile
나의 개발로그

0개의 댓글