https://www.acmicpc.net/problem/14681
Answer
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int x = Integer.parseInt(br.readLine());
int y = Integer.parseInt(br.readLine());
int quadrant = 0;
if((x >= -1000 && x <= 1000 && x != 0) && (y >= -1000 && y <= 1000 & y != 0)) {
quadrant = (x > 0) ? ((y > 0) ? 1 : 4) : ((y > 0) ? 2 : 3);
}
System.out.println(quadrant);
}
}
Code Explanation
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
사용자로부터 입력을 바이트 단위로 받기 위해 입력 스트림 `System.in`을 사용했다.
Scanner 클래스보다 효율적인 메모리를 가지는 BufferedReader 클래스를 사용했다.
if((x >= -1000 && x <= 1000 && x != 0) && (y >= -1000 && y <= 1000 & y != 0)) {
quadrant = (x > 0) ? ((y > 0) ? 1 : 4) : ((y > 0) ? 2 : 3);
}
이 문제에서 입력조건인 (−1000 ≤ x ≤ 1000; x ≠ 0)와 (−1000 ≤ y ≤ 1000; y ≠ 0)를 먼저 분기 처리 해주고,
몇 사분면인지를 삼항연산자를 이용하여 풀었다.
Performance