Skip to main content

1331.js

/** ------------------------------------------------------------------------------
*
* 1331. Rank Transform of an Array
* Topics: Array, Hash Table
* https://leetcode.com/problems/rank-transform-of-an-array/description/?envType=daily-question&envId=2024-10-02
*
------------------------------------------------------------------------------ */
/**
* @param {number[]} arr
* @return {number[]}
*/
var arrayRankTransform = function (arr) {
const map = new Map()
let copy = [...arr]
copy.sort((a, b) => a - b)
let rank = 1

for (let i = 0; i < copy.length; i++) {
if (map.has(copy[i])) {
continue
} else {
map.set(copy[i], rank)
rank++
}
}

for (let i = 0; i < arr.length; i++) {
arr[i] = map.get(arr[i])
}

return arr
}

/**
* new Set() 풀이
*/
var arrayRankTransform = function (arr) {
const map = new Map()
const sort = [...new Set(arr)].sort((a, b) => a - b)

for (let i = 0; i < sort.length; i++) {
map.set(sort[i], i + 1)
}

return arr.map((v) => map.get(v))
}

console.log()