본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 14681번: 사분면 고르기 [C++]

문제 출처: www.acmicpc.net/problem/14681

 

14681번: 사분면 고르기

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

www.acmicpc.net

 

1. 코드

(실행)

2. 풀이

우선 문제에 대해서 먼저 파악해보자.

참고 그림

문제에서 x좌표와 y좌표를 입력 후에 그것이 어떠한 사분면에 속하였는지를 알아보는 것이다. 그렇다면 1 사분면은 x > 0, y > 0일 때이며 2 사분면은 x < 0, y > 0일 때이며 3 사분면은 x < 0, y < 0일 때이며 4 사분면은 x > 0, y <0일 때이다. 이제 그것을 코드로 구현하면 된다.

int x, y;
cin >> x >> y;

우선 x와 y좌표를 선언 후 입력함으로써 초기화를 한다.

if (x > 0)
{
    if (y > 0)
        cout << 1;
    else
        cout << 4;
}

x좌표가 0보다 큰 값인지 확인을 한 뒤 y 좌표의 값이 0보다 크다면 1 사분면( x > 0, y > 0)에 속하였으므로 1을 출력한다. 만약 y 좌표의 값이 0보다 작다면 4 사분면(x > 0, y < 0)에 속하였으므로 4를 출력한다.

else
{
    if (y > 0)
        cout << 2;
    else
        cout << 3;
}

그리고 x좌표가 0보다 작다면 y좌표가 0보다 크다면 2 사분면(x < 0, y > 0)에 속하였으므로 2를 출력한다. 만약 y좌표의 값이 0보다 작다면 3 사분면(x < 0, y < 0)에 속하였으므로 3을 출력한다.