숫자로 이루어진 문자열 t와 p가 주어질 때,t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는
수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.
예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다.
이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다
public class Solution67 {
/**
* 주어진 문자열 t에서 부분 문자열 p와 숫자를 비교하여 p보다 작거나 같은 경우의 수를 반환하는 메서드.
*
* @param t 비교 대상이 되는 문자열
* @param p 비교할 부분 문자열
* @return p보다 작거나 같은 경우의 수
*/
public int solution(String t, String p) {
// 결과값 초기화
int answer = 0;
// 부분 문자열 p의 길이
int pLength = p.length();
// 주어진 문자열 t를 순회
for (int i = 0; i <= t.length() - pLength; i++) {
// t에서 현재 위치에서 pLength만큼의 부분 문자열 추출
String substring = t.substring(i, i + pLength);
// 추출한 부분 문자열을 숫자로 변환하여 비교
if (Long.parseLong(substring) <= Long.parseLong(p)) {
// p보다 작거나 같으면 결과값 증가
answer++;
}
}
// 최종 결과 반환
return answer;
}
}
이 코드는 두 개의 문자열 t와 p가 주어질 때, t에서 추출한 부분 문자열이 p보다 작거나 같은 숫자인 경우의 수를 계산하는 Java 클래스입니다. 주어진 문자열 t를 순회하면서 모든 가능한 부분 문자열을 확인하고, 각 부분 문자열을 숫자로 변환하여 p와 비교합니다. 만약 숫자로 변환한 부분 문자열이 p보다 작거나 같으면 결과값을 증가시킵니다.
'알고리즘 문제풀이(JAVA)' 카테고리의 다른 글
| 알고리즘 문제풀이-숫자 문자열과 영단어(JAVA) (1) | 2024.01.04 |
|---|---|
| 알고리즘 문제풀이-이상한 문자 만들기(JAVA) (1) | 2024.01.04 |
| 알고리즘 문제풀이-이상한 문자 만들기(JAVA) (1) | 2024.01.04 |
| 알고리즘 문제풀이-시저 암호(JAVA) (2) | 2024.01.04 |
| 알고리즘 문제 풀이 - 삼총사 (JAVA) (0) | 2023.12.26 |