[프로그래머스/Java] Lv.0 k의 개수

febCho·2024년 6월 14일
0

코딩테스트

목록 보기
220/253
post-thumbnail

문제

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

풀이

k가 1이라고 할 때, 11처럼 두 번 카운트 해야 하는 경우가 있어서 String.valueOf()로 파싱 후 split()으로 문자열 배열을 만든 다음 루프를 돌며 equals()로 k와 같은 경우 +1 해주었다.

i와 j의 범위가 100,000까지라 다소 비효율적인 코드가 된 것 같아 아쉽다.

class Solution {
    public int solution(int i, int j, int k) {
        int answer = 0;
        
        for(int a=i; a<=j; a++){
            String[] numA = String.valueOf(a).split("");
            
            for(String n : numA){
                if(n.equals(String.valueOf(k))) answer++;
            }
        }
        
        return answer;
    }
}

결과

profile
Done is better than perfect.

0개의 댓글