[백준] 18870번 (Swift)

이창형·2023년 6월 1일
0

코드

let n = Int(readLine()!)!
let arr = readLine()!.split(separator: " ").map{Int(String($0))!}
var dict = [Int:Int]()
var next = 0

// 오름차순으로 정렬 후 순서대로 카운팅 후 번호를 매김
// 오름차순으로 정렬했기 때문에 본인 보다 큰 수는 앞에 없다
for i in arr.sorted() {
    if dict[i] == nil {
        dict[i] = next
        next += 1
    }
}

print("\(arr.map{ String(dict[$0]!) }.joined(separator: " "))")

회고

  • 문제는 어렵지 않지만 시간 복잡도를 줄이는것이 어려웠다
  • for문을 중첩하여 정렬하다 도저히 못풀어서 참고했다
profile
iOS Developer

0개의 댓글