백준/단계별

백준 2577 C#) 숫자의 개수

alpacadabra 2022. 4. 18. 17:57

주어진 수에서 각 자릿수를 뽑아내는 방법은 다양하다.

 

//A x B x C 의 결과를 구하는 작업
int num = 1;

for (int i = 0; i < 3; i++)
{
    num *= int.Parse(Console.ReadLine());
}

//각 자릿수를 뽑아내는 작업
int[] counts = new int[10];

while (num != 0)
{
    counts[num % 10]++;
    num /= 10;
}

//출력
foreach (int count in counts)
{
    Console.WriteLine(count);
}

 

 

주어진 수에서 1의 자릿수를 뽑아낸 후 10으로 나누어 다음 자릿수인 10의 자릿수가 1의 자릿수로 이동하도록 하였다.

이를 반복하면 모든 자릿수를 구할 수 있다.

 

다른 방법으로도 자릿수를 뽑아낼 수 있다.

 

//문자열을 이용한 자릿수 추출
string numString = num.ToString();
int[] counts = new int[10];

foreach (char numChar in numString)
{
    counts[numChar - '0']++;
}

 

주어진 수를 문자열로 바꿔 각 문자를 아스키 코드로 연산하는 것이다.