문제 링크
https://www.acmicpc.net/problem/18870
답안
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "text.txt";
const newLine = process.platform === "linux" ? "\n" : "\r\n";
const key = fs.readFileSync(filePath).toString().trim().split(newLine)[1].split(" ").map(Number);
const map = new Map();
[...new Set(key)].sort((a, b) => a - b).forEach((el, i) => map.set(el, i));
let answer = "";
key.forEach((el) => {
answer += `${map.get(el)} `;
});
console.log(answer.trim());
- 주어지는 배열의 단위가 큰 관계로 On^2가 들어가는 순간 문제 풀이는 실패했다고 봐야한다.
- 따라서 map, set, 해시 등 시간복잡도를 줄일 수 있는 방법을 알고있다면 어렵지 않게 풀 수 있다.
'코테 문제 풀이' 카테고리의 다른 글
[백준 1074] Z (Node.js) - 분할정복 (0) | 2023.05.30 |
---|---|
[백준 4779] 칸토어 집합 (Node.js) - 분할정복 (0) | 2023.05.30 |
[백준 1193] 분수찾기 (Node.js) (1) | 2023.05.13 |
[백준 1065] 한수 (Node.js) (0) | 2023.01.31 |
[백준 4673] 셀프 넘버 (Node.js) (0) | 2023.01.30 |