물음표 살인마의 개발블로그

알고리즘 문제/백준

조건문 #14681

BEstyle 2022. 9. 25. 23:53

사분면 고르기 다국어

한국어   
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB 164174 99294 87107 61.597%

문제

흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 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)

출력

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

예제 입력 1 복사

12
5

예제 출력 1 복사

1

예제 입력 2 복사

9
-13

예제 출력 2 복사

4

출처

Olympiad > Canadian Computing Competition & Olympiad > 2017 > CCC 2017 Junior Division 1번

  • 문제를 번역한 사람: jh05013

package TeamPractice;

import java.util.Scanner;

public class Exercise14681 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);


        System.out.println("x를 입력해주세요.");
        float num1=sc.nextFloat();
        System.out.println("y를 입력해주세요.");
        float num2=sc.nextFloat();

        int num3 = Float.floatToIntBits(num1);
        int num4 = Float.floatToIntBits(num2);

        int num5 = (-num3>>>31)-(num3>>>31);
        int num6 = (-num4>>>31)-(num4>>>31);

        if(num1>0){
            System.out.println((int)( (num5 * 2.5) - (num6 * 1.5) ));
        }else{
            System.out.println((int)( (num5 * -2.5) - (num6 * 0.5) ));
        //x=y^2
        }
        //System.out.println(
        //        (num1==0) ? ( (num2==0) ? "원점" : "x 축 위에 있음.") : ( (num2==0) ? "y 축 위에 있음." : (num1>0) ? ( (num2>0) ? "제 1사분면" : "제 4사분면" ) : ( (num2>0) ? "제 2사분면" : "제 3사분면" ) ) );
    }
}

'알고리즘 문제 > 백준' 카테고리의 다른 글

반복문 #2739  (0) 2022.09.25
조건문 #2884  (0) 2022.09.25
조건문 #2753  (0) 2022.09.25
조건문 #9498  (0) 2022.09.25
조건문 #1330  (0) 2022.09.25