JAVA/프로그래머스 코딩테스트 입문

[프로그래머스, LV.0] k의 개수

sundori 2024. 12. 11. 12:20

목차

    문제 설명

    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
    class Solution {
        public int solution(int i, int j, int k) {
            int count = 0;
            String target = String.valueOf(k);
    
            for (int num = i; num <= j; num++) {
                String numStr = String.valueOf(num);
                count += numStr.length() - numStr.replace(target, "").length();
            }
    
            return count;
        }
    }

    코드 설명

    1. target 변수: k를 문자열로 변환해 검색 대상 문자열을 준비한다.
    2. 반복문: i부터 j까지 모든 숫자를 순회하며 각 숫자를 문자열로 변환한다.
    3. 문자열 연산:
      • numStr.replace(target, ""): target을 제거한 문자열로 변환.
      • numStr.length() - 변환된 문자열 길이: target이 등장한 횟수를 계산한다.
    4. 카운트 증가: count 변수에 등장 횟수를 누적한다.
    5. 결과 반환: 최종적으로 등장 횟수를 반환한다.

    실행 예제

    • 입력: i = 1, j = 13, k = 1
      • 출력: 6
    • 입력: i = 10, j = 50, k = 5
      • 출력: 5
    • 입력: i = 3, j = 10, k = 2
      • 출력: 0
    728x90