(Swift) 백준 1015 수열 정렬

SteadySlower·2022년 8월 12일
0

Coding Test

목록 보기
120/305

1015번: 수열 정렬

문제 풀이 아이디어

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: " ")
}
profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글