[백준] 1468번 : 사분면 고르기 - [C++]
728x90
-
문제
- 알고리즘 [접근 방법]
이번 문제는 워낙 쉬운 문제라 다들 어렵지 않게 풀었을 것이다.
우리가 흔히 사용하는 좌표계를 생각하면 된다.
그리고 하나 포인트라고 하면, X좌표와 Y좌표는 양수 또는 음수로만 주어진다. 이 의미는 0은 입력으로 들어오지 않기 때문에 (X,0), (Y,0), (0,0) 에 대해 따로 예외 처리를 해주지 않아도 된다.
참고로 각 사분면은 다음과 같이 나뉜다.
1사분면 : (양수, 양수)
2사분면 : (음수, 양수)
3사분면 : (음수, 음수)
4사분면 : (양수, 음수)
이를 토대로 조건문을 작성해주면 된다.
- 2가지 방법을 사용하여 풀이한다.
이전 포스팅과 마찬가지로 조건문(if-else)을 사용하는 방법과, 삼항연산자를 이용한 방법을 이용하여 풀어보도록 하겠다.
1. 조건문
2. 삼항연산자
- 풀이
- 방법 1 : [조건문]
#include <iostream>
using namespace std;
int main(int argc, char const *argv[]) {
int X, Y;
cin >> X >> Y;
// X가 양수일 경우(1사분면 or 4사분면)
if (X > 0) {
if (Y > 0) {
cout << 1;
} else {
cout << 4;
}
}
// X가 음수일 경우(2사분면 or 3사분면)
else {
if (Y > 0) {
cout << 2;
} else {
cout << 3;
}
}
return 0;
}
가장 기본적인 방법이라 할 수 있겠다.
아마 어렵지 않게 풀었을 것이다.
- 방법 2 : [삼항연산자]
방법 1의 조건문을 삼항연산자로 바꾸어 표현하는 방법이다.
#include <iostream>
using namespace std;
int main(int argc, char const *argv[]) {
int X, Y;
cin >> X >> Y;
cout << (X > 0 ? (Y > 0 ? 1 : 4) : (Y > 0 ? 2 : 3));
return 0;
}
코드 자체는 훨씬 간결해진 것을 볼 수 있다.
- 성능
채점 번호 : 27185878 - 방법 2 : 삼항연산자
채점 번호 : 27185864 - 방법 1 : 조건문
- 정리
이 번 문제 또한 어려운 점은 없었을 것이다. 두 풀이 방법 모두 어떤 성능상의 차이를 내는 것은 아니기 때문에 여러분의 취향에 따라 알맞은 것을 선택하면 된다.
'C++ - 백준 [BAEK JOON] > 조건문' 카테고리의 다른 글
[백준] 2525번 : 오븐 시계 - [C++] (0) | 2022.07.24 |
---|---|
[백준] 2844번 : 알람 시계 - [C++] (2) | 2021.03.15 |
[백준] 2753번 : 윤년 - [C++] (0) | 2021.03.09 |
[백준] 9498번 : 시험 성적 - [C++] (6) | 2021.03.02 |
[백준] 1330번 : 두 수 비교하기 - [C++] (0) | 2021.02.28 |