1331. Rank Transform of an Array

늘보·2021년 9월 7일
0

LeetCode

목록 보기
27/69

💡풀이

var arrayRankTransform = function (arr) {
  let obj = {};
  let sorted = [...arr].sort((a, b) => a - b); // 1
  let answer = [];

  let num = 0;

  for (let item of sorted) { // 2
    if (!obj[item]) {
      obj[item] = num + 1;
      num++;
    }
  }

  for (let item of arr) { // 3
    answer.push(obj[item]);
  }

  return answer;
};

let arr = [37, 12, 28, 9, 100, 56, 80, 5, 12];
arrayRankTransform(arr);

📝정리

먼저, 정렬을 위해 sort 메서드를 사용했고, 원본 배열이 바뀌지 않게 spread 연산자와 함께 사용했다.

이후 Rank를 지정해주기 위해 2번의 방법을 사용했다. (객체 사용)

마지막으로 매개변수로 전달받은 arr을 순회하며 answer 배열에 담아줬다.

수정, 지적을 환영합니다!

문제 링크

https://leetcode.com/problems/rank-transform-of-an-array/

LeetCode GitHub

https://github.com/tTab1204/LeetCode

0개의 댓글