ABOUT ME

-

  • [백준] 14681번 사분면 고르기 - JAVA
    백준 문제 풀이/JAVA 2023. 6. 1. 12:29
    문제

    흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제 n사분면"이라는 뜻이다.

    예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.

    점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.

     

    입력

    첫 줄에는 정수 x가 주어진다. (−1000 ≤ x ≤ 1000; x ≠ 0) 다음 줄에는 정수 y가 주어진다. (−1000 ≤ y ≤ 1000; y ≠ 0)

    더보기

    9

    -13

     

    출력

    점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다.

     

    풀이
    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		
    		Scanner sc = new Scanner(System.in);
    		
    		int x = sc.nextInt();
    		int y = sc.nextInt();
    		
    		if(x>0 && y>0) 
    		{
    			System.out.println("1");
    		}
    		else if(x<0 && y>0)
    		{
    			System.out.println("2");
    		}
    		else if(x<0 && y<0)
    		{
    			System.out.println("3");
    		}
    		else
    		{
    			System.out.println("4");
    		}
    	}
    }

    1. import java.util.Scanner

    java에서는 Scanner 클래스를 사용하여 값을 입력받습니다.

    Scanner은 java.util 패키지에 포함되어 있기 때문에 java.util을 import 해줘야 Scanner를 사용할 수 있습니다.

    따라서 코드 맨 위에 'import java.util.Scanner'를 입력해 줍니다.

     

    2. Scanner sc = new Scanner(System.in);

    그다음 입력받기 위해 Scanner 객체를 생성합니다.

    'sc'는 객체 이름으로 원하는 이름으로 변경해 줘도 상관없습니다.

     

    3. int x = sc.nextInt(); 

    입력받은 숫자를 정수값 변수 x와 y에 저장을 해줍니다.

    Scanner 클래스 메소드에는 여러 가지가 있지만 정수형을 입력받을 것이기 때문에 'sc.nextInt()'로 int를 읽어옵니다.

     

    4. if(x>0 && y>0){ System.out.println(1); }

    1사분면은 x, y 값 모두 양수입니다.

    조건에서 x좌표와 y좌표 몯 양수나 음수이기 때문에 0일 가능성은 제외하고서

    x의 값이 0보다 큰 양수인지, y의 값이 0보다 큰 양수인지 확인한 후에 두 값이 모두 양수이면 1사분면에 속하기 때문에 1을 출력합니다.

     

    5. else if(x<0 && y>0){ System.out.println(2); }

    2사분면은 x의 값이 음수, y의 값이 양수입니다.

    if문에서는 1사분면의 조건을 확인했기 때문에 여러 조건을 확인하기 위해 if-else문을 사용합니다.

    if-else문은 여러 가지 조건을 확인할 때 사용하며 if문에서 조건을 만족하지 못했을 때 if-else문에서 조건을 검사합니다.

    x의 값이 0보다 작은 음수인지, y의 값이 0보다 큰 양수인지 확인한 후에 두 조건이 모두 만족하면 2사분면에 속하기 때문에 2를 출력합니다.

     

    6. else if(x<0 && y<0){ System.out.println(3); }

    3사분면은 x, y 값 모두 음수입니다.

    x의 값이 0보다 작은 음수인지, y의 값이 0보다 작은 음수인지 확인한 후에 두 조건이 모두 만족하면 3사분면에 속하기 때문에 3을 출력합니다.

     

    7. else{ System.out.println(4) };

    위 3가지 조건을 모두 만족하지 않는 것은 4사분면에 속한다 가정하여 else문으로 4를 출력합니다.

Designed by Tistory.