ALGORITHM/Inflearn

좌표정렬 - sort사용

Harimad 2022. 3. 20. 13:02

 

문제

좌표(x, y)가 주어지면 모든 좌표를 오름차순 정렬하느 프로그램 작성
x값으로 우선 정렬하고, x값이 같으면 y값으로 정렬

입력예제 1

2 7 
1 3 
1 2 
2 5 
3 6
 
출력예제 1 
1 2 
1 3 
2 5 
2 7 
3 6
 

 

풀이

1. 배열을 sort 메서드를 사용해서 정렬한다.

2. answer.sort(a, b => ?) 에서 a값은 첫 요소[2, 7]이고, b값은 두번째 요소[1, 3]이다

3. a[0] 값과 b[0]의 값이 같으면 a 와 b의 두번째 배열요소로 리턴(return a[1] - b[1])해서 정렬한다.

4. 그렇지 않은 경우에는 a 와 b의 첫번째 배열요소로 리턴(return a[0] - b[0]) 한다.

 

코드

function solution(arr){
  let answer=arr;
  answer.sort((a, b) => {
    if (a[0] === b[0]) return a[1] - b[1]
    return a[0] - b[0]
  })
  return answer;
}

let arr=[[2, 7], [1, 3], [1, 2], [2, 5], [3, 6]];
console.log(solution(arr)); // [[1, 2], [1, 3], [2, 5], [2, 7], [3, 6]]

 

 

출처

 

자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의

자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., - 강의

www.inflearn.com