문제
입출력 예
풀이
처음에 고민고민하다가 각 변은 평행하다는 것에서 힌트를 얻었다
주어진 세 좌표가 (1,4) (3,4) (3,10) 일 때 답은 1, 10인데
x좌표만 모아놓고 보면 [1,3,3]
y좌표만 모아놓고 보면 [4,4,10]
x,y좌표 각각 짝을 찾아주면 직사각형을 만들 수 있으니 짝이 없는 놈을 구하면 되는 것
바로 구현에 들어갔다
1st
const v = [[1, 4], [3, 4], [3, 10]];
const xStack = {};
const yStack = {};
const answer = [];
for(let i=0; i<v.length;i++){
const x = v[i][0];
const y = v[i][1];
xStack[x] = xStack[x] ? xStack[x]+1 : 1;
yStack[y] = yStack[y] ? yStack[y]+1 : 1;
}
for(let key in xStack){
if(xStack[key] === 1) answer.push(Number(key));
}
for(let key in yStack){
if(yStack[key] === 1) answer.push(Number(key));
}
배열에 담아놓고 스택처럼 쓰면될 것 같아서 스택이라고 선언했으나 코드를 짜다보니 배열보단 객체에 담아놓고 키와 밸류로 접근하는 것이 편하고 가독성이 좋을 것 같아서 그렇게 풀었다
스스로 짠 코드에 만족해서 남들과 비교하려고 검색해 봤는데...
비트연산자로 두 줄만에 풀어버리는 걸 보고 너무 부끄러웠다
2st
const v = [[1, 4], [3, 4], [3, 10]];
answer.push(v[0][0]^v[1][0]^v[2][0]);
answer.push(v[0][1]^v[1][1]^v[2][1]);
끝..
'Algorithm > 문제' 카테고리의 다른 글
baekjoon. 수 정렬하기 3 (0) | 2021.01.01 |
---|---|
baekjoon. 수 정렬하기 2 (0) | 2020.12.30 |
baekjoon. 분해합 (0) | 2020.12.29 |
baekjoon. 하노이 탑 이동 순서 (0) | 2020.12.20 |
Recursion - blob 구하기 (0) | 2020.12.07 |