728x90
728x90
문제
흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 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
알고리즘 분류
- 구현
- 기하학
문제 출처
https://www.acmicpc.net/problem/14681
문제 해결 방법
- 사분면의 정의에 대해 잘 파악하고 있다면 쉽게 풀 수 있는 문제였다.
- x축과 y축의 좌표의 수를 각각 입력 받은 후, 각각의 부호의 조건에 맞게 몇 사분면인지 출력하도록 하여 문제를 해결하였다.
코드
#include <iostream>
using namespace std;
int main() {
cin.tie(NULL);
cout.tie(NULL);
ios_base::sync_with_stdio(false);
int x, y;
cin >> x >> y;
// Quadrant n : 제 n사분면
// x > 0, y > 0 : Q1
// x < 0, y > 0 : Q2
// x < 0, y < 0 : Q3
// x > 0, y < 0 : Q4
if ((x > 0) && (y > 0)) {
cout << "1" << endl;
}
else if ((x < 0) && (y > 0)) {
cout << "2" << endl;
}
else if ((x < 0) && (y < 0)) {
cout << "3" << endl;
}
else {
cout << "4" << endl;
}
return 0;
}
채점 결과
참고
- [단계별로 풀어보기] > [조건문]
Quadrant (사분면)
(x, y) | |
2 (-, +) | 1 (+, +) |
3 (-, -) | 4 (+, -) |
728x90
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ-2739][C++] 구구단 (0) | 2022.07.09 |
---|---|
[BOJ-2480][C++] 주사위 세개 (0) | 2022.07.08 |
[BOJ-2525][C++] 오븐 시계 (0) | 2022.07.08 |
[BOJ-2884][C++] 알람 시계 (0) | 2022.07.08 |
[BOJ-2753][C++] 윤년 (0) | 2022.07.08 |
[BOJ-9498][C++] 시험 성적 (0) | 2022.07.08 |
[BOJ-1330][C++] 두 수 비교하기 (0) | 2022.07.08 |
[BOJ-25083][C++] 새싹 (0) | 2022.07.07 |