반응형
문제
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
입력
세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.
출력
직사각형의 네 번째 점의 좌표를 출력한다.
해설
축에 평행한 직사각형을 만들기 위해서는 사실 두개의 점만 알고 있다면 직사각형을 그릴 수 있다.
직사각형의 시작점과 끝점 2개(그림에서 파란색 점 두개)만 안다면 직사각형을 그릴 수 있다.
(x1, y1) (x2,y2) 두개의 점을 안다고 하는 경우 아래와 같이 직사각형이 그려진다.
다시 문제로 넘어가면, 3개의 점을 알고 있다면 x1, y1, x2, y2 4개의 값을 모두 알 수 있다.
점 4개의 좌표값을 모으면 각자 2번씩 등장하기 때문에 우리는
3개의 점의 좌표값 중 1번만 등장하는 값을 찾으면 된다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
var fs = require('fs');
var lines = fs.readFileSync('/dev/stdin').toString().split('\n');
var points = lines.map(lines => {
const points = lines.split(" ").map(el => parseInt(el));
return points
})
const xList = []
const yList = []
for(let point of points) {
const xIndex = xList.findIndex(el => el === point[0])
if(xIndex != -1) {
xList.splice(xIndex, 1)
} else {
xList.push(point[0])
}
const yIndex = yList.findIndex(el => el === point[1])
if(yIndex != -1) {
yList.splice(yIndex, 1)
} else {
yList.push(point[1])
}
}
console.log(`${xList[0]} ${yList[0]}`)
|
cs |
반응형
'끄적 > Algorithm' 카테고리의 다른 글
[알고리즘] 백준 - 4153 직각삼각형 node js 구현 (0) | 2021.08.27 |
---|---|
[알고리즘] 백준 - 1149 RGB 거리 node js 구현 (0) | 2021.08.22 |
[알고리즘] 백준 - 1003 피보나치 함수 node js 구현 (0) | 2021.08.20 |
[알고리즘] 백준 -1085 직사각형에서 탈출 node.js 구현 (0) | 2021.08.17 |
[알고리즘] 백준 -11653 소인수분해 node.js 구현 (0) | 2021.08.16 |