https://www.acmicpc.net/problem/14681
문제
흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 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. (x > 0 and y > 0) : 1사분면
2. (x < 0 and y > 0) : 2사분면
3. (x < 0 and y < 0) : 3사분면
4. (x > 0 and y < 0) : 4사분면
소스코드 - 파이썬
import sys
input = sys.stdin.readline
def Quadrant(x,y):
if x > 0:
if y > 0:
return 1
elif y < 0:
return 4
elif x < 0:
if y > 0:
return 2
elif y < 0:
return 3
return 0
x = int(input())
y = int(input())
q = Quadrant(x,y)
print(q)
소스코드 - C++
#include <cstdio>
using namespace std;
int Quadrant(int x, int y) {
int q = 0;
if (x > 0) {
if (y > 0) {
q = 1;
} else if (y < 0) {
q = 4;
}
} else if (x < 0) {
if (y > 0) {
q = 2;
} else if (y < 0) {
q = 3;
}
}
return q;
}
int main() {
int x, y, q;
scanf("%d", &x);
scanf("%d", &y);
q = Quadrant(x, y);
printf("%d", q);
}
소스코드 - Java
import java.util.*;
public class Main {
public static int Quadrant(int x, int y){
int q = 0;
if (x > 0) {
if (y > 0) {
q = 1;
} else if (y < 0) {
q = 4;
}
} else if (x < 0) {
if (y > 0) {
q = 2;
} else if (y < 0) {
q = 3;
}
}
return q;
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
int q = Quadrant(x,y);
System.out.println(q);
}
}
'Algorithm > Baekjoon' 카테고리의 다른 글
[Baekjoon-10797] 백준-10797 10부제 (0) | 2020.05.10 |
---|---|
[Baekjoon-2446] 백준-2446 별찍기-9 (0) | 2020.05.05 |
[Baekjoon-1260] 백준-1260 손익분기점 (0) | 2019.12.12 |
[Baekjoon-1260] 백준-1260 DFS와 BFS (0) | 2019.12.12 |
[Baekjoon-2753] 백준-2753 윤년 (0) | 2019.12.07 |