728x90
https://school.programmers.co.kr/learn/courses/30/lessons/147355
728x90
메모리: 88.1 MB, 시간: 1.10 ms
사용 알고리즘: 문자열
class Solution {
public int solution(String t, String p) {
long numP = Long.parseLong(p);
// 앞에서부터 p의 길이 - 1 만큼 자른 수 구하기
long num = 0;
for(int i = 0; i < p.length() - 1; i++) {
num *= 10;
num += t.charAt(i) - '0';
}
// 다음 부분 문자열을 구하기 위한 수
final long MOD = (long) Math.pow(10, p.length() - 1);
int answer = 0;
int index = p.length() - 1;
while(index < t.length()) {
num = (num % MOD) * 10 + (t.charAt(index) - '0');
if(num <= numP) answer++;
index++;
}
return answer;
}
}
728x90
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스, 12930] 이상한 문자 만들기 (java) (0) | 2025.01.07 |
---|---|
[프로그래머스, 17680] [1차] 캐시 (java) (0) | 2025.01.07 |
[프로그래머스, 140108] 문자열 나누기 (java) (0) | 2025.01.03 |
[프로그래머스, 181847] 0 떼기 (java) (0) | 2025.01.03 |
[프로그래머스, 161990] 바탕화면 정리 (java) (2) | 2024.12.23 |