이상한 기호
시간 제한메모리 제한제출정답맞힌 사람정답 비율
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();
}
}
'공부 > 코딩 테스트' 카테고리의 다른 글
[Java] LeetCode 20. Valid Parentheses (0) | 2025.04.03 |
---|---|
[Java] Long의 바이너리 값 팰린드롬 구하기 (0) | 2025.04.02 |
[Java] N번째 거듭제곱 수열 구하기 (0) | 2025.04.02 |
[Java] 백준 10807번 : 개수 세기 (2) | 2025.03.29 |
[Java] 백준 10871번 : X보다 작은 수 (0) | 2025.03.29 |