k의 개수

문제


나의 생각

i 부터 j의 까지 값을 for문으로 돌리면서 각 값을 string으로 변환.

charAt값과 k 값이 같을때 answer++ 해주는 방식.

 


나의 답안

public static int solution(int i, int j, int k) {
    int answer = 0;

    for (int a = i; a <= j; a++) {
        String s = Integer.toString(a);
        for (int b = 0; b < s.length(); b++) {
            if (s.charAt(b) - '0' == (char) k ) {
                answer++;
            }
        }
    }

    return answer;
}

다른 답안

값을 다 문자열로 다 치환하고 k의 값만 빈문자열로 변환. 그렇게되면 원래 문자열길이에서 변경된 문자열에서의 차이는 오로지 k의 값이므로 해당 값을 추출 할 수 있음. 

class Solution {
    public int solution(int i, int j, int k) {
        String str = "";
        for(int a = i; a <= j; a++) {
            str += a+"";
        }

        return str.length() - str.replace(k+"", "").length();
    }
}

'Programmers 문제풀이 > Lv.0' 카테고리의 다른 글

한 번만 등장한 문자  (0) 2023.03.01
진료순서 정하기  (0) 2023.03.01
가까운 수  (0) 2023.03.01
2차원으로 만들기  (0) 2023.03.01
팩토리얼  (3) 2023.02.28