문제
해결 과정
간단한 조건 문제이다. 좌표 평면에서 점 가 주어졌을 때, 점이 위치한 사분면을 출력하면 된다.
이때 와 의 범위가 이므로 int 자료형으로 충분하다.
문제에 제시한 대로 와 의 부호에 따라 사분면을 출력하면 된다.
예시 답안
풀이 1 - 이중 조건문
와 각각에 대해 부호를 판별해야 하므로 이중 조건문을 사용하면 된다.
C++ 코드
#include <iostream>
using namespace std;
int main() {
int x, y;
cin >> x >> y;
if (x > 0) {
if (y > 0) cout << 1; // x > 0, y > 0
else cout << 4; // x > 0, y < 0
} else {
if (y > 0) cout << 2; // x < 0, y > 0
else cout << 3; // x < 0, y < 0
}
return 0;
}풀이 2 - 삼항 연산자
삼항 연산자를 사용하면 더 간단하게 표현할 수 있다.
C++ 코드
#include <iostream>
using namespace std;
int main() {
int x, y;
cin >> x >> y;
cout << (x > 0 ? (y > 0 ? 1 : 4) : (y > 0 ? 2 : 3));
return 0;
}문제 풀이 팁
조건문을 사용할 때
else는if에 대한 조건을 제외한 나머지 조건을 검사한다. 이를 이용하면 조건문을 간단하게 표현할 수 있다.
삼항 연산자는
condition ? true : false의 형태를 가진다.condition이 참이면true의 결과가, 거짓이면false의 결과가 반환된다.