B[P[i]] = A[i]
- B는 A를 비내림차순으로 정렬한 것입니다.
- P[i]는 A[i]가 B의 몇번째에 있는가를 알아낼 수 있는 index입니다.
- 결과적으로 P 수열은 B의 index들로 이루어진 수열입니다.
- 따라서 A를 먼저 정렬하고
- A를 순회하면서 B의 몇번째 index에 있는지 찾으면 됩니다.
let N = Int(readLine()!)!
let A = readLine()!.split(separator: " ").map { Int(String($0))! }
var B = A.sorted { a, b in a <= b }
for a in A {
let i = B.firstIndex(of: a)!
B[i] = 0
print(i, terminator: " ")
}