상세 컨텐츠

본문 제목

백준#2577 - 숫자의 개수

C#/알고리즘

by McRobbin 2020. 4. 8. 17:13

본문

https://www.acmicpc.net/problem/2577

 

2577번: 숫자의 개수

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다.

www.acmicpc.net

1차원 배열로 분류된 숫자의 갯수 문제 입니다.

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _2577
{
    class Program
    {
        static void Main(string[] args)
        {
            //0부터 9까지 갯수를 가질 배열.
            int[] countArr = new int[10];
            int mul = 1;
 
            //입력과 곱하기까지 진행.
            for (int i = 0; i < 3; i++)
                mul = mul * int.Parse(Console.ReadLine());
            string strMul = mul.ToString();
 
            //string의 문자열 한글자씩 가져와 int로 변환, 해당 인덱스의 값+1
            for (int i = 0; i < strMul.Length; i++
                countArr[int.Parse(strMul.Substring(i, 1))]++;
            foreach (int count in countArr)
                Console.WriteLine(count);
        }
    }
}
 
 
 

0 ~ 9까지의 인덱스를 가지는 배열을 선언합니다. 여기에 0번째 자리에는 0의 갯수부터 9번째 자리에는 9의 

갯수까지 넣을 겁니다. int[] countArr = new int[10]과 같이 생성자로 할 경우 모든 값이 0으로 초기화 됩니다.

 

갯수가 3개로 정해져 있으므로 3번만 받으며 받은 string을 int로 바꿔 mul에 곱해 마지막에 세 수의 곱을 받겠습니다.

 

마지막으로 세 수의 곱을 string으로 바꿔 0번부터 (또는 마지막 부터) string형식의 숫자를 가져와 parse하고

그 자리를 인덱스로 카운트를 하나 올렸습니다.

 

마지막으로 갯수를 센 배열을 처음부터 끝까지 출력했습니다.

'C# > 알고리즘' 카테고리의 다른 글

백준#2884 - 알람시계  (0) 2020.04.09
백준#14681 - 사분면 고르기  (0) 2020.04.09
백준#2562 - 최댓값  (0) 2020.04.08
백준#10818 - 최소, 최대  (0) 2020.04.08
백준#1110 - 더하기 사이클  (0) 2020.04.08

관련글 더보기