class Solution {
public int solution(int i, int j, int k) {
int count = 0;
String strK = String.valueOf(k);
for (int l = i; l <= j; l++) {
String value = String.valueOf(l);
if (value.contains(strK)) {
String[] array = value.split("");
for (String alpha : array) {
if (alpha.equals(strK)) count++;
}
}
}
return count;
}
}
i부터 j까지 k가 들어가는 개수를 찾는 문제이다.
첫번째 테스트 케이스를 예시로 들면 1부터 13까지 1은 총 6번 등장한다.
1, 10, 11, 12, 13으로 5개가 아닌가 싶지만 11에서는 1이 두 번 들어있다.
i부터 j까지 반복문을 돌며 비교하기 쉽도록 문자열로 바꾸어주고
각 숫자단어에 k와 동일한 값이 들어있는지 확인하고 한 숫자안에 여러번 등장할 가능성이 있으므로 단어를 split()
으로 쪼개서 확인하도록 구현하였다.