백준

백준 11720번 c#

대왕군 2024. 1. 11. 16:55

오답(참고만 할 것)

using System;

namespace Baekjoon
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //이 로직은 이번 문제에서 틀린로직이므로 참고만 할 것

            //이번문제는 입력값에 대량의 숫자가 들어갈수도 있기때문에
            //long을 써도 해결이 되지 않는 문제라 다른 방법을 써야한다
            //일단 로직은 입력값에 10을 나누고, 나온 몫에 반복적으로 10을 나눠서 나온
            //모든 나머지를 더하는 로직이다
            long count = long.Parse(Console.ReadLine());
            long number = long.Parse(Console.ReadLine());

            long temp = number;
            long result = 0;

            for (long i = 0; i < count; i++)
            {
                result += temp % 10;
                temp = temp / 10;
            }
            Console.WriteLine(result);
        }
    }
}

 

방법 1 (for)

using System;

namespace Baekjoon
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //숫자의 길이와 계산할 숫자 받아옴
            int count = int.Parse(Console.ReadLine());
            string numbers = Console.ReadLine();

            //결과값 더할 변수
            int result = 0;

            //숫자 길이만큼 반복함
            for (int i = 0; i < count; i++)
            {
                //numbers는 string형식이므로 char형으로 나누어 하나씩 계산해야함
                //배열형식으로 값을 가져온 뒤에 int.Parse로 형변환을 해줄거임
                //그런데 int.Parse는 인자로 char가 아닌 string형만 받기때문에 다시 ToString으로 형변환후 인자로 넣어줌
                result += int.Parse(numbers[i].ToString());
            }
            //결과
            Console.WriteLine(result);
        }
    }
}

 

방법 2 (foreach)

using System;

namespace Baekjoon
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //숫자의 길이와 계산할 숫자 받아옴
            int count = int.Parse(Console.ReadLine());
            string numbers = Console.ReadLine();

            //결과값 더할 변수
            int result = 0;

            //foreach를 사용하는 경우 굳이 count를 안써도 됨
            foreach (char item in numbers)
            {
                result += int.Parse(item.ToString());
            }

            //결과
            Console.WriteLine(result);
        }
    }
}