본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.0

[프로그래머스 - JAVA] K의 개수

by 코딩하는 흰둥이 2023. 3. 12.
반응형

 

  • 내 풀이
class Solution {
    public int solution(int i, int j, int k) {
        int answer = 0;

	// i~j 사이의 숫자와 k 의 값을 비교하기 위한 변수
        String check = "";

        for (int l = i; l <= j; l++) {
            // l의 값이 int 형이기 때문에 문자열로 변경하기 위함(String.valueOf도 가능)
            check = ""+l;

            // check.length()를 하게 되면 변수의 개수가 나옴 예) 1 -> 1개 , 22 -> 2개 , 100 -> 3개
            for (int m = 0; m < check.length(); m++) {
                 /*
                 k는 int형이기 때문에 비교하기 위해 
                 if(k == Integer.parseInt(String.valueOf(check.charAt(m)) 으로 하거나

                 둘다 문자열로 변환하여 비교한다.
                 if(String.valueOf(k).equals(String.valueOf(check.charAt(m))
                  */
                if(k == Integer.parseInt(String.valueOf(check.charAt(m)))){
                    answer++;
                }
            }
        }

        return answer;
    }
}

 

 

  • 다른 사람 풀이
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();
    }
}



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

        for (int num = i; num <= j; num++){
            int tmp = num;
            while (tmp != 0){
                if (tmp % 10 == k)
                    answer++;
                tmp /= 10;
            }
        }
        return answer;
    }
}

처음에는 나머지를 이용해서 구해보려고 했으나 내 스스로가 정리가 안돼서 풀이를 변경하였다

댓글