https://school.programmers.co.kr/learn/courses/30/lessons/120887
■ 문제설명
1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
■ 제한사항
- 1 ≤ i < j ≤ 100,000
- 0 ≤ k ≤ 9
■ 입출력 예
i | j | k | result |
1 | 13 | 1 | 6 |
10 | 50 | 5 | 5 |
3 | 10 | 2 | 0 |
■ 나의 코드
class Solution {
public int solution(int i, int j, int k) {
int answer = 0;
for(int m=i; m<=j; m++) {
String str[] = Integer.toString(m).split("");
String kk = Integer.toString(k);
for(int n=0; n<str.length; n++) {
if(str[n].equals(kk))
answer++;
}
}
return answer;
}
}
■ 코드 풀이
배열 str에 m을 문자열로 바꿔 공백을 기준으로 잘라 넣었습니다. k를 문자열로 바꾸고 for문을 돌려 str[n]와 kk가 같다면 answer을 증가시켜줬습니다.
■ 기타
Integer.toString : 숫자를 문자열로 변환
split : 문자열을 배열로 자르는 메서드
equals : 문자열 비교 연산자