[백준] 14681번 : 사분면 고르기 - JAVA [자바]
728x90
https://www.acmicpc.net/problem/14681
-
문제
매우 쉬운 문제다.
다행이도 ( x, y ) 의 범위에서 0 은 제외되었으므로 따로 예외처리 해줄 필요가 없다.
- 2가지 방법을 이용하여 풀이한다.
먼저 가장 기본적인 입력방법인 Scanner 을 통해 풀어보고, 다른 방법으로는 BufferedReader 을 사용하여 풀어 볼 것이다.
- 풀이
- 방법 1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int X = in.nextInt();
int Y = in.nextInt();
if(X > 0) {
if(Y > 0) {
System.out.print(1);
}
else {
System.out.print(4);
}
}
else {
if(Y > 0) {
System.out.print(2);
}
else {
System.out.print(3);
}
}
}
}
먼저 큰 틀로 X 좌표가 0보다 큰지, 작은지를 판별 한 뒤, Y 좌표의 값에 따라 최종적으로 몇 사분면에 있는지 검사하는 방법이다.
- 방법 2
다른 방법으로는 BufferedReader 을 사용하여 구하는 방법이다.
Scanner 와는 달리 문자열로만 입력받기 때문에 int 형에 저장해주기 위해서는 Integer.parseInt() 로 자료형을 String 에서 int 로 변경해주어야 한다.
기본적인 알고리즘은 같다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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());
if(X > 0) {
if(Y > 0) {
System.out.print(1);
}
else {
System.out.print(4);
}
}
else {
if(Y > 0) {
System.out.print(2);
}
else {
System.out.print(3);
}
}
}
}
- 성능
위에서 부터 순서대로
채점 번호 : 18484207 - BufferedReader
채점 번호 : 18484199 - Scanner
입력을 달리할 때 Scanner 보다는 BufferedReader 가 빠른 걸 볼 수 있다.
- 정리
그리 어렵지 않은 문제였다. 알고리즘 자체도 그렇게 설명할 것이 많지 않아 아마 여러분들이 쉽게 풀었으리라 본다.
'JAVA - 백준 [BAEK JOON] > 조건문' 카테고리의 다른 글
[백준] 2480번 : 주사위 세개 - JAVA [자바] (4) | 2022.08.04 |
---|---|
[백준] 2525번 : 오븐 시계 - JAVA [자바] (18) | 2022.07.22 |
[백준] 2884번 : 알람 시계 - JAVA [자바] (24) | 2020.02.14 |
[백준] 2753번 : 윤년 - JAVA [자바] (19) | 2020.02.13 |
[백준] 9498번 : 시험 성적 - JAVA [자바] (0) | 2020.02.13 |