[BAEKJOON] 백준 15964 : 이상한 기호(C#)

2024. 4. 5. 02:26IT/BaekJoon

문제 링크

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

 

15964번: 이상한 기호

부산일과학고등학교의 효진이는 수학의 귀재이다. 어떤 문제라도 보면 1분 내에 풀어버린다는 학교의 전설이 내려올 정도였는데, 이런 킹ㅡ갓 효진에게도 고민이 생겼다. 대부분의 문제에서 반

www.acmicpc.net

 

 

문제

부산일과학고등학교의 효진이는 수학의 귀재이다. 어떤 문제라도 보면 1분 내에 풀어버린다는 학교의 전설이 내려올 정도였는데, 이런 킹ㅡ갓 효진에게도 고민이 생겼다. 대부분의 문제에서 반복되는 연산이 있었기 때문이다! 이 연산은 너무 길어서 종이에 풀던 효진이는 너무 고통스러워서, 자신이 새로 연산자를 만들기로 했다.

연산자의 기호는 @으로, A@B = (A+B)×(A-B)으로 정의내리기로 했다.

하지만, 효진이는 막상 큰 숫자가 들어오자 계산하기 너무 귀찮아졌다.

효진이를 도와 정수 A, B가 주어지면 A@B를 계산하는 프로그램을 만들어주자!

 

 

입력

첫째 줄에 A, B가 주어진다. (1 ≤ A, B ≤ 100,000)

 

 

출력

첫째 줄에 A@B의 결과를 출력한다.

 

 

 

통과한 답안

더보기
namespace _15964
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // A@B = (A+B)X(A-B) == A * A - B * B

            string s = Console.ReadLine();
            string[] ss = s.Split(' ');
            long a = long.Parse(ss[0]);
            long b = long.Parse(ss[1]);
            Console.WriteLine(a * a - b * b);
        }
    }
}

 

 

A@B = (A+B) X (A-B)로 주어지는데 이는 A * A - A * B + B * A - B * B인데

이 연산은 숫자에서 사용되는 연산이므로 교환법칙이 성립하므로 A * B = B * A이다.

따라서 A@B = A * A - B * B가 된다.

이를 구현하면 되는데 A와 B의 범위가 10만 이하이므로,

이를 제곱하면 int의 범위를 벗어나므로 long을 사용한다.