728x90
반응형
[백준] 3009번 - 네 번째 점 (node.js)
링크
https://www.acmicpc.net/problem/3009
문제
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
입력
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.
출력
직사각형의 네 번째 점의 좌표를 출력한다.
예제
입력 1
5 5
5 7
7 5
출력 1
7 7
입력 2
30 20
10 10
10 20
출력 2
30 10
답안
const fs = require("fs");
const arr = fs
.readFileSync("input.txt")
.toString()
.trim()
.split(/\r?\n/)
.map((d) => d.split(" ").map((d) => parseInt(d)));
const xArr = arr.map((d) => d[0]).sort();
const yArr = arr.map((d) => d[1]).sort();
const x = xArr[0] === xArr[1] ? xArr[2] : xArr[0];
const y = yArr[0] === yArr[1] ? yArr[2] : yArr[0];
console.log(`${x} ${y}`);
직사각형의 특성상 4개의 좌표에서 두개씩은 같게 된다.
그렇다면 주어진 3개의 좌표에서 공통된 점이 아닌것들을 찾으면 된다.
그래서 x, y좌표를 따로 배열로 구하고 그걸 sort 처리해주면.
[같은 x점, 같은 x점, 다른 x점 ] or [다른 x점, 같은 x점, 같은 x점] 이라는 두가지의 경우가 된다 (sort로 정렬 해줘서)
이후에 index 0과 1번째 자리의 값을 비교해서 구하면 된다.
728x90
반응형
'코딩 테스트' 카테고리의 다른 글
[백준] 2581번 - 소수 (node.js) (0) | 2024.04.29 |
---|---|
[백준] 1978번 - 소수 찾기 (node.js) (0) | 2024.04.29 |
[백준] 2869번 - 달팽이는 올라가고 싶다 (node.js) (0) | 2024.04.26 |
[백준] 1193번 - 분수찾기 (node.js) (1) | 2024.04.25 |
[백준] 2292번 - 벌집 (node.js) (1) | 2024.04.25 |
댓글