티스토리 뷰
이번 문제는 주어진 숫자의 자릿수에 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;
}
}
생각보다 결과가 잘나온 것 같다.
다른분들이 해결한 문제들을 보니 대부분 숫자를 문자열로 변환하셔서 각 자릿수를 문자로 비교하는 것을 보았다.
내가 생각했던 방식의 로직과 동일하였지만 문자열 변환 부분이 많은 것을 생각하면 내 방식이 좀더 빠른 것 같다.
'코딩테스트 > Programmers' 카테고리의 다른 글
[Programmers] 입문) 숨어있는 숫자의 덧셈 (2) (Convert.ToInt32) (0) | 2023.07.03 |
---|---|
[Prgrammers] 입문) 가까운 수 (이진탐색) (0) | 2023.07.02 |
[Programmers] 입문) A로 B 만들기 (0) | 2023.07.02 |
[Programmers] 입문) 팩토리얼 (역추적) (0) | 2023.07.01 |
[Programmers] 입문) 중복된 문자 제거 (Distinct) (0) | 2023.06.28 |