[프로그래머스] 크기가 작은 문자열
2025. 12. 13. 16:05ㆍCoding 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"""으로 확인할 수 있다.
'Coding Test (Algorithm) > JAVA' 카테고리의 다른 글
| [프로그래머스] 없는 숫자 더하기 (0) | 2025.08.12 |
|---|---|
| [프로그래머스] 안전지대 (2) | 2025.08.10 |
| [프로그래머스] 구슬을 나누는 경우의 수 (4) | 2025.08.10 |
| [백준] 11382번 - 꼬마 정민 (1) | 2025.08.03 |
| [프로그래머스] 치킨 쿠폰 (0) | 2025.02.23 |