1271번: 엄청난 부자2 (acmicpc.net)

 

1271번: 엄청난 부자2

첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수)

www.acmicpc.net

 

입력값의 범위를 보면 m,n은 최대 10의 1000승이라는 엄청 거대한 숫자까지 입력을 한다.

따라서 통상적인 정수 자료형으로는 절대 커버가 불가능하다.

 

파이썬의 경우에는 이러한 커다란 숫자의 처리가 자동으로 처리되어 파이썬으로 코딩하는 경우 브론즈5로 느껴지나 C의 경우 정석적으로 푼다면 문자열의 덧셈(뺄셈)을 구현한 다음, 반복문으로 곱셋(나눗셈)을 구현하여 숫자가 아닌 문자열로 계산을 처리하여야 한다. 이렇게 푼다면 난이도는 못해도 실버~골드까지 가진다.

 

파이썬만큼은 아니지만 C#의 경우 이러한 초월적인 큰 수의 처리를 위해 BigInteger 구조체를 제공해준다.

BigInteger 구조체를 사용하기 위해서는 System.Numerics 라이브러리를 참조해주어야 한다.

 

솔루션 탐색기 참조 우클릭 - numerics 입력하여 System.Numerics 라이브러리를 체크해준다.

 

이후 using System.Numerics;를 선언해주면 아래와 같이 BigInteger를 사용가능하다.

 

 

코드

using System;
using System.Numerics;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] tokens = Console.ReadLine().Split(' ');

            BigInteger a = BigInteger.Parse(tokens[0]);
            BigInteger b = BigInteger.Parse(tokens[1]);

            var c = a / b;
            var d = a % b;

            Console.WriteLine(c);
            Console.WriteLine(d);
        }
    }
}

'백준 > Bronze' 카테고리의 다른 글

[Bronze5][14928]큰 수 (BIG)  (0) 2022.08.29
[Bronze5][14652]나는 행복합니다~  (0) 2022.08.29
[Bronze5][2744]대소문자 바꾸기  (0) 2022.08.29
[Bronze4][15552]빠른 A + B  (0) 2022.08.29
[Bronze5][2420]사파리월드  (0) 2022.08.29

+ Recent posts