정수 배열 values가 주어져요. 각 값을 자신보다 작은 서로 다른 값의 개수로 바꾼 배열을 반환해요.
즉 등장하는 서로 다른 값들을 오름차순으로 정렬해 0, 1, 2… 순위를 매긴 뒤, 원래 순서를 유지한 채 각 값을 그 순위로 치환해요. 같은 값은 같은 순위를 가져요.
예시
예시 1
예시 2
제한 사항
- 1 ≤ values.length ≤ 100,000
- -10^9 ≤ values[i] ≤ 10^9
[...new Set(values)]로 중복을 없앤 뒤 정렬하고, 값 → 순위 맵을 만들어 원래 배열을 매핑해요. Python은 sorted(set(values))와 딕셔너리 컴프리헨션을 쓰면 돼요.javascriptCopy codefunction coordinateCompression(values) {const sorted = [...new Set(values)].sort((a, b) => a - b);const rank = new Map(sorted.map((v, i) => [v, i]));return values.map((v) => rank.get(v));}
예시 테스트만 실행 (Cmd/Ctrl+Enter)
숨김 테스트까지 채점 (Cmd/Ctrl+Shift+Enter)
에디터를 불러오고 있어요…
코드를 작성하고Ctrl↵를 눌러 예시 테스트를 확인해 보세요.