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

2025. 12. 13. 16:05Coding Test (Algorithm)/JAVA

 

코딩 테스트를 공부하고 있습니다📝 틀리거나 다른 부분이 있을 수 있습니다.

 

Quiz

크기가 작은 문자열

 

Solution(Private)

이 문제는 같은 크기의 문자열을 1) 추출 2) 비교하여, '이하'가 몇 번 나왔는지 확인하는 문제이다.

class Solution {
    public int solution(String t, String p) {
        int answer = 0;
        //substring을 활용 위한, p의 크기
        int pLen = p.length();
		//substring 진행 및 비교
        for (int i = 0; i <= t.length() - pLen; i++) {
            String sub = t.substring(i, i + pLen);
            if (sub.compareTo(p) <= 0) {
                answer++;
            }
        }
        return answer;
    }
}

 

여기서 확인할 포인트는 compareTo() 이다. 이 함수는 1) 문자열 길이가 같고 2) 문자열이 숫자로만 구성될 경우에만 사용 가능하다. 또한 이 함수는 기준 대상과 비교 대상의 문자열 길이 차이값을 돌려주는 함수이다.

 

실제로 결과를 확인을 위해 테스트를 해본다면 아래와 같다.

public static void main(String[] args) {

    String standardNum = "456";
    String lessThanNum = "123";
    String moreThanNum = "789";
    String equalToNum = "456";

    System.out.println(standardNum.compareTo(lessThanNum));		//3
    System.out.println(standardNum.compareTo(moreThanNum));		/-3
    System.out.println(standardNum.compareTo(equalToNum));		//0

}

 

기준 대상과 비교하여, 비교 대상이 같으면 0 / 크면 음수 / 작으면 양수의 값을 돌려준다.

 

따라서 문제처럼, 기준 대상이 비교 대상보다 작거나 같은 횟수를 찾는다면 """기준대상.compareTo(비교대상) <= 0"""으로 확인할 수 있다.