입출력 예
t | p | result |
"3141592" | "271" | 2 |
"500220839878" | "7" | 8 |
"10203" | "15" | 3 |
입출력 예 설명
입출력 예 #1
- 본문과 같습니다.
입출력 예 #2
- p의 길이가 1이므로 t의 부분문자열은 "5", "0", 0", "2", "2", "0", "8", "3", "9", "8", "7", "8"이며 이중 7보다 작거나 같은 숫자는 "5", "0", "0", "2", "2", "0", "3", "7" 이렇게 8개가 있습니다.
입출력 예 #3
- p의 길이가 2이므로 t의 부분문자열은 "10", "02", "20", "03"이며, 이중 15보다 작거나 같은 숫자는 "10", "02", "03" 이렇게 3개입니다. "02"와 "03"은 각각 2, 3에 해당한다는 점에 주의하세요
- 내 풀이
class Solution {
public int solution(String t, String p) {
int answer = 0;
// p의 길이만큼 문자열을 자르기 때문에 포함되어야 해서 <=
for(int i = 0; i <= t.length() - p.length(); i++){
String check = "";
//0부터 p의 길이만큼 자르기 위해 i를 변수로 줌
for(int j = i; j < p.length()+i; j++){
check += String.valueOf(t.charAt(j));
}
// int로 하면 런타임 에러가 생겨서 Long으로 변경
if(Long.parseLong(check) <= Long.parseLong(p)){
answer++;
}
}
return answer;
}
}
- 다른 사람 풀이
class Solution {
public int solution(String t, String p) {
int pLength = p.length();
long pValue = Long.parseLong(p);
int answer = 0;
for (int i = 0; i <= t.length() - pLength; i++) {
long tValue = Long.parseLong(t.substring(i, i + pLength));
if (tValue <= pValue)
answer++;
}
return answer;
}
}
substring .... 이게 왜 생각이 안났지...
'프로그래머스 > [프로그래머스 - JAVA] Lv.1' 카테고리의 다른 글
[프로그래머스 - JAVA] 콜라 문제 (0) | 2023.04.05 |
---|---|
[프로그래머스 - JAVA] 두 개 뽑아서 더하기 (0) | 2023.04.04 |
[프로그래머스 - JAVA] K번째수 (0) | 2023.04.04 |
[프로그래머스 - JAVA] 숫자 문자열과 영단어 (0) | 2023.04.03 |
[프로그래머스 - JAVA] 문자열 내 마음대로 정렬하기 (0) | 2023.04.03 |
댓글