반응형
직사각형을 만들기 위한 4 번째 점을 찾는 문제이다. 구글링 했을 때 if 문을 활용한 답안이 많이 보이길래 삼항연산자로 문제를 푼 풀이를 공유하고자 한다. if문으로 문제를 풀면 코드를 작성하기 귀찮아져서 삼항연산자를 활용했다.
삼항 연산자는
(조건문) ? 참일때_표현식 : 거짓일때_표현식
와 같은 형태를 띄고 있다.
이 문제를 풀 때 직사각형이 되기 위한 조건으로는 예를 들어서
(1,2) (2,1) (1,2) 라고 했을 때 x 좌표에서 3 값중 다른 값인 2, y 좌표에서 3개 중 다른 값인 1이 튀어나오면 된다.
따라서 출력 값은 2 1이다.
삼항 연산자를 중첩해서 사용할 수 있기 때문에 최종 코드를 보면
#include <iostream>
using namespace std;
int main(){
int arr[3] = {0,};
int arr2[3] = {0,};
for(int i = 0; i < 3; i++){
cin >> arr[i] >> arr2[i];
}
int x = (arr[0] == arr[1]) ? arr[2] : (arr[1] == arr[2]) ? arr[0] : arr[1];
int y = (arr2[0] == arr2[1]) ? arr2[2] : (arr2[1] == arr2[2]) ? arr2[0] : arr2[1];
cout << x << " " << y;
return 0;
}
이 된다.

https://www.acmicpc.net/problem/3009
3009번: 네 번째 점
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
www.acmicpc.net
반응형
'오르막길 > C++ 공부기록' 카테고리의 다른 글
[백준][C++] 2093번 중앙 이동 알고리즘 (0) | 2024.03.18 |
---|---|
[백준][C++] 11653번 소인수분해 (1) | 2024.02.27 |
2023.07의 공부기록 (0) | 2023.08.03 |
2023.06의 공부기록 (1) | 2023.07.01 |
댓글