배열 A의 원소가 주어질 때, A[i] = B[P[i]]를 만족하는 P를 구하여라.
const fs = require("fs");
const filePath = process.platform === "linux" ? "dev/stdin" : "input.txt";
const [N, input] = fs.readFileSync(filePath).toString().split("\n");
let i = 0;
const arr = [];
input.split(" ").map((x) => {
arr[i] = [Number(x), i];
i++;
});
arr.sort((a, b) => a[0] - b[0]);
for (let i = 0; i < N; i++) {
arr[i].push(i);
}
arr.sort((a, b) => a[1] - b[1]);
console.log(arr.reduce((str, x) => (str += x[2] + " "), ""));
문제 풀이 과정에 따라 차근차근히 변환 과정을 이해해야 하는 문제다.
처음에는 다소 헷갈렸으나, 정렬 과정을 console.log 로 찍으면서 확인해 보면, 문제에서 출력하고자 하는 답을 확인하기까지 정렬을 두 번 반복해야 함을 알 수 있다.