[BAEKJOON] 백준 1357: 뒤집힌 덧셈 (C#)

2024. 5. 20. 00:44IT/BaekJoon

문제 링크

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

 

 

문제

어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(X) = 1이다.

두 양의 정수 X와 Y가 주어졌을 때, Rev(Rev(X) + Rev(Y))를 구하는 프로그램을 작성하시오

 

 

입력

첫째 줄에 수 X와 Y가 주어진다. X와 Y는 1,000보다 작거나 같은 자연수이다.

 

 

출력

첫째 줄에 문제의 정답을 출력한다.

 

 

 

통과한 답안

namespace _1357
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] inputs = Console.ReadLine().Split(' ');
            string X = inputs[0];
            string Y = inputs[1];

            int sum = Rev(X) + Rev(Y);
            Console.WriteLine(Rev(sum));
        }

        static int Rev(string str)
        {
            char[] charArray = str.ToCharArray();
            Array.Reverse(charArray);
            return int.Parse(new string(charArray));
        }

        static int Rev(int num)
        {
            return Rev(num.ToString());
        }
    }
}

 

문제를 간략하게 해석하면

두 숫자가 주어진 경우, 두 숫자를 각각 역순으로 된 숫자로 만들고 둘을 더한 뒤에

다시 그 결과를 역순으로 변형하여 출력하는 것이다.

 

이 문제의 풀이에서 주요하게 생각한 부분은

string의 경우에는 역순으로 숫자를 만들기 편하다는 점으로

이를 이용하여 string을 매개변수로 갖는 Rev 함수를 만들었다.

이후에 int를 매개변수로 받는 Rev 함수를 만들어

두 역순으로 된 숫자의 합도 계산할 수 있게 처리하였다.