이상한 기호

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 256 MB 40230 21371 20171 54.974%

문제

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

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

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

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

입력

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

출력

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

서브태스크 1 (30점)

  • A, B ≤ 1,000

서브태스크 2 (70점)

문제에서 주어진 제약 조건 외 제한 없음

예제 입력 1 복사

4 3

예제 출력 1 복사

7

예제 입력 2 복사

3 4

예제 출력 2 복사

-7

 


우선 문제 자체는 쉬운 편이다. 

두 정수를 A 와 B를 입력 받은 후 (A+B) * (A-B)를 출력하면 되는 부분이다.

 

정수 A,B는 ( 1 ≤ A, B ≤ 100,000)다.

처음에 제약 조건을 잘 못 보고 풀어서 30점만 맞았었는데

 

나는 이게 제한시간 2초에 걸려서 그런건가? 하면서 열심히 똥꼬쇼를 했다... -_-

 

그냥 int를 long으로 바꿔 int로는 감당할 수 없는 출력값을 계산할 수 있도록하면 되는거였다.

 

import java.io.*;
public class WeirdOperator {
    public static void main(String[] args) throws IOException{
    	// 입출력 준비
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        // 정수 A,B 준비
        String[] str = bf.readLine().split(" ");
        // (A + B) × (A - B) 를 해준다.
        long k = (Long.parseLong(str[0])+Long.parseLong(str[1]))
        		* (Long.parseLong(str[0])-Long.parseLong(str[1]));
        // 출력
        bw.write(String.valueOf(k));
        bw.flush();
        bw.close();
    }
}
블로그 이미지

Ahan

책, 영화, 게임! 인생의 활력 요소가 되는 취미들을 하자!

,