알고리즘 문제 풀이/백준

[백준 2577번/C#] 숫자의 개수

Ardmos :) 2023. 10. 23. 19:51

배운 점: 

  1. 10진수에서 마지막 자리 숫자를 구하는 간단한 방법 : '10으로 나눈다' 를 새삼 깨달았다 ㅎㅎ

  2. 몰랐던 C#에서의 List 검색 기능에 대해 배웠다 (Where과 Count)

 

실수한 점:

 

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // a, b, c 입력받음
            int a = int.Parse(Console.ReadLine());
            int b = int.Parse(Console.ReadLine());
            int c = int.Parse(Console.ReadLine());
            int answer = 0;
            int totalNum = 0;
            List<int> totalNumlist = new List<int>();

            // 목표 숫자
            totalNum = a * b * c;

            // 10진수를 10으로 나누게되면 나머지가 곧 마지막 자리 숫자인것을 이용하는 방식.
            // 목표 숫자를 한 자리씩 떼내어 리스트에 저장한다. 
            for (int j = totalNum; j > 0; j = j / 10)
            {
                totalNumlist.Add(j % 10);
            }

            // Where는 리스트에서 조건을 걸어 검색할 때 사용한다.
            // Where(s => s == i).Count(); 는 리스트에서 s와 i가 같은 경우의 수를 반환한다.
            // 여기서 s는 리스트에 저장된 숫자 하나하나이고, i는 0부터9까지의 숫자이다.
            // 경우의 수 확인이 끝나는대로 바로바로 출력.
            for (int i = 0; i <= 9; i++)
            {
                answer = totalNumlist.Where(s => s == i).Count();
                Console.WriteLine(answer);
            }

        }
    }
}
728x90