✔ 크기가 작은 부분문자열
문제 분석하기
p의 길이만큼 t를 자르며 p보다 작거나 같을 경우 리턴 값을 증가시켜줌
손으로 풀어보기
- p의 길이만큼 t를 자르기
- 잘라진 t를 p와 비교하여 작거나 같을 경우 리턴 값 증가
- 리턴 값 반환
슈도코드 작성하기
t(숫자로 이루어진 문자열)
p(숫자로 이루어진 문자열)
for(t의 길이 - p의 길이만큼) {
t를 p의 길이만큼으로 자르기
if(p보다 작거나 같으면)
리턴값 증가
}
리턴값 반환
코드 구현하기
/**
* 147355) 크기가_작은_부분문자열
*/
public class L068_147355 {
// t(숫자로 이루어진 문자열)
// p(숫자로 이루어진 문자열)
public int solution(String t, String p) {
int answer = 0;
for (int i = 0; i < t.length() - p.length() + 1; i++) {
// t를 p의 길이만큼으로 자르기
long num = Long.parseLong(t.substring(i, i + p.length()));
// p보다 작거나 같으면
if (num <= Long.parseLong(p))
// 리턴값 증가
answer++;
}
// 리턴값 반환
return answer;
}
// 테스트 케이스
public static void main(String[] args) {
L068_147355 solution = new L068_147355();
String t = "3141592";
String p = "271";
int result = solution.solution(t, p);
System.out.println(result);
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[1845] 폰켓몬 (0) | 2023.10.27 |
---|---|
[142086] 가장 가까운 같은 글자 (0) | 2023.10.26 |
[150370] 개인정보 수집 유효기간 (0) | 2023.10.24 |
[155652] 둘만의 암호 (0) | 2023.10.23 |
[159994] 카드 뭉치 (0) | 2023.10.22 |