https://school.programmers.co.kr/learn/courses/30/lessons/147355
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
public int solution(String t, String p) {
int count = 0;
int base = p.length();
for(int i=0; i<=t.length()-base; i++) {
if(t.substring(i, i+base).compareTo(p) <= 0) {
count++;
}
// if(Integer.parseInt(t.substring(i, i+base)) <= Integer.parseInt(p)) {
// count++;
// }
}
return count;
}
}
Integer.parseInt()를 하니까 시간 초과로 런타임 에러가 많이 걸렸다.
그래서 그 부분만 문자열을 compareTo()하는 걸로 바꾸니까 바로 통과됐다.
compareTo() 메서드는 두 문자열을 사전순으로 비교하여, 첫 번째 문자열이 두 번째 문자열보다 작거나 같으면 0 또는 음수를 반환한다.
그러니까 논리적으로 저걸 굳이 숫자로 파싱 안 해도 된다는 거.