자바스크립트 코딩테스트 '좌표정렬'

릿·2021년 8월 26일
0

코딩테스트

목록 보기
2/27

[x, y] 좌표로 이루어져있는 2차원 배열 오름차순 정렬문제. x값 오름차순으로 정렬하되, x값이 같을 경우에는 y값을 비교해서 정렬한다.

  1. 내 풀이 :
    x값으로 정렬하는 건 하겠는데 y값으로 비교하려면 이중 for문을 써야할지 뭘 해야할지 고민하기조차 귀찮아서 그냥 for문을 두개 돌려버림...
function solution(arr){
	let answer=arr;
    for (let x=0; x<arr.length-1; x++) {
    	if (arr[x][0] > arr[x+1][0]) [arr[x], arr[x+1]]=[arr[x+1], arr[x]];
    }
    for (let x=0; x<arr.length-1; x++) {
    	if (arr[x][0] === arr[x+1][0]) if (arr[x][1] > arr[x+1][1]) [arr[x], arr[x+1]]=[arr[x+1], arr[x]];
    }
    return answer;
}

let arr=[[2, 7], [1, 3], [1, 2], [2, 5], [3, 6]];
console.log(solution(arr));
  1. 쌤 풀이 :
    sort함수로 이차원 배열 정렬하는 방법을 알려주기 위한 연습문제란다.
    sort함수는 진짜 GOD!!!
function solution(arr){
	let answer=arr;
	arr.sort((a, b)=>{
		if(a[0]===b[0]) return a[1]-b[1];
        else return a[0]-b[0];
    });
 	return answer;
}

let arr=[[2, 7], [1, 3], [1, 2], [2, 5], [3, 6]];
console.log(solution(arr));
profile
새로운 도전과 재미를 추구하는 프론트엔드 개발자

0개의 댓글