https://www.acmicpc.net/problem/3009
3009번: 네 번째 점
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
www.acmicpc.net
문제
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
입력
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.
출력
직사각형의 네 번째 점의 좌표를 출력한다.
예제 입력 1
5 5
5 7
7 5
예제 출력 1
7 7
예제 입력 2
30 20
10 10
10 20
예제 출력 2
30 10
풀이
축에 평행한 직사각형이 되기 위해서는 좌표가 (x, y), (x + a, y), (x, y + b), (x + a, y + b)와 같이 되어야 한다. x좌표와 y좌표만 모아서 보면 [x, x, x + a, x + a], [y, y, y + b, y + b]이고 같은 좌표가 두 개씩 존재한다는 것을 알 수 있다. 그래서 x좌표와 y좌표를 분리해서 각각 정렬을 하고 하나만 존재하는 x값과 y값을 찾아 출력해주었다.
코드
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(el => el.split(' ').map(v => parseInt(v)));
const xList = [];
const yList = [];
for(let i = 0; i < 3; i++){
xList.push(input[i][0]);
yList.push(input[i][1]);
}
xList.sort((a, b) => a - b);
yList.sort((a, b) => a - b);
let x = xList[0];
let y = yList[0];
if(x === xList[1]) x = xList[2];
if(y === yList[1]) y = yList[2];
console.log(x + ' ' + y);
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11727: 2×n 타일링 2 / Node.js (JavaScript) (0) | 2022.12.05 |
---|---|
[백준] 9461: 파도반 수열 / Node.js (JavaScript) (0) | 2022.12.04 |
[백준] 15740: A+B - 9 / Node.js (JavaScript) (0) | 2022.12.01 |
[백준] 25311: UCPC에서 가장 쉬운 문제 번호는? / Node.js (JavaScript) (0) | 2022.11.30 |
[백준] 1697: 숨바꼭질 / Node.js (JavaScript) (0) | 2022.11.29 |
댓글