[Question] BOJ 18870번 문제
Opened this issue · 0 comments
taek0622 commented
백준 18870번 문제는 시간이 매우 빠듯한 문제인듯하다.
계속되는 시간초과로 다른 사람의 코드를 참고했는데, 그 중 2번째 솔루션의 코드를 리딩할 수는 있으나, 생각하고 작성하기는 어려울 것 같다는 생각이 들었다.
두고두고 보면서 익혀야할 것 같다.
특히. enumerated()
의 사용 부분을 주의 깊게 봐야할 것 같다.
코드의 전문은 아래와 같다,
let N = Int(readLine()!)!
let points = readLine()!.split(separator: " ").map { Int(String($0))! }.enumerated().sorted { $0.element < $1.element }
var counter = Array(repeating: 0, count: N)
var count = 0
var prevNum = points.first?.element
counter[points.first!.offset] = count
for (offset, element) in points[1...] {
if prevNum == element {
counter[offset] = count
} else {
count += 1
counter[offset] = count
}
prevNum = element
}
print(counter.map { String($0) }.joined(separator: " "))