문제

백준 14681번 사분면 고르기

해결 과정

간단한 조건 문제이다. 좌표 평면에서 점 가 주어졌을 때, 점이 위치한 사분면을 출력하면 된다.

이때 의 범위가 이므로 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++ 코드

Baekjoon/14xxx/14681.cpp
#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;
}

문제 풀이 팁

조건문을 사용할 때 elseif에 대한 조건을 제외한 나머지 조건을 검사한다. 이를 이용하면 조건문을 간단하게 표현할 수 있다.

삼항 연산자는 condition ? true : false의 형태를 가진다. condition이 참이면 true의 결과가, 거짓이면 false의 결과가 반환된다.

추가 학습 자료