티스토리 뷰

 

이번 문제는 주어진 숫자의 자릿수에 k와 동일한 수가 있는지 확인하는 문제이다.

 

나는 가장 먼저 각 자리수를 받는 방법으로 나머지 연산자를 생각했고 다음 코드를 구상했다.

 

solution(시작값, 끝값, 목표값) {
	for (시작값부터 끝값까지 모든 수를 확인) {
    	매번 확인되는 수를 나머지 연산으로 각 자리수마다 목표값과 비교
        비교한 값이 동일하면 정답 개수 증가
    }
}
using System;

public class Solution {
    // 시작, 끝, 목표
    public int solution(int i, int j, int k)
    {
        int answer = 0;

        for (int num = i; num <= j; num++)
            answer += CountNumeric(num, k);

        return answer;
    }

    public int CountNumeric(int number, int target)
    {
        int counter = 0;

        while(number > 0) {
            if(number % 10 == target) counter++;
            number /= 10;
        }

        return counter;
    }
}

 

생각보다 결과가 잘나온 것 같다.

 

다른분들이 해결한 문제들을 보니 대부분 숫자를 문자열로 변환하셔서 각 자릿수를 문자로 비교하는 것을 보았다.

내가 생각했던 방식의 로직과 동일하였지만 문자열 변환 부분이 많은 것을 생각하면 내 방식이 좀더 빠른 것 같다.

최근에 올라온 글
최근에 달린 댓글
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함