중복되지 않은 좌표 구하기

문제


개의 좌표를 입력으로 받습니다. 좌표는 x y 좌표값으로 이루어진 숫자입니다. 함수는 주어진 개의 좌표 중복되지 않는 좌표를 찾아서 문자열 형태로 반환합니다. 중복되지 않는 좌표는 x 좌표와 y 좌표 모두에서 중복되지 않는 좌표를 의미합니다.

 

예를 들어,(30, 20), (10, 10), (10, 20) 개의 좌표 중에서 중복되지 않는 좌표는 (30, 10)입니다. 따라서 함수는 문자열 "30 10" 반환해야 합니다.

 

입력


x좌표 중에서 항상 2개는 같은 x 좌표입니다.

y좌표 중에서 항상 2개는 같은 y 좌표입니다.

x와 y의 구분자는 띄어쓰기이고 좌표끼리의 구분자는 엔터입니다.

 

풀이


function findUniqueCoordinate(coordinates) {
    const x = [];
    const y = [];
    coordinates
        .split('\n')
        .map((e) => e.split(' '))
        .map((e) => {
            const xIdx = x.indexOf(e[0]);
            if (xIdx >= 0) x.splice(xIdx, 1);
            else x.push(e[0]);
            const yIdx = y.indexOf(e[1]);
            if (yIdx >= 0) y.splice(yIdx, 1);
            else y.push(e[1]);
        });
    return x[0] + ' ' + y[0];
}

 

x, y좌표 각각 담을 수 있는 변수를 준비하고 x,y좌표 값에 각각 수가 있으면 배열에서 빼내서 마지막에 남아 있는 숫자가 중복되지 않은 좌표입니다.

'코딩문제' 카테고리의 다른 글

삼각형의 종류 판별하기  (0) 2024.04.09
소인수분해 결과 출력하기  (0) 2024.04.07
소수 개수 세기  (0) 2024.04.07
K번째로 약수를 찾아라  (0) 2024.04.07
사다리 오르내리기  (0) 2024.04.03