Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Olive Study Room

[백준 알고리즘] #10818번 : 배열/속도 향상 본문

cs/알고리즘

[백준 알고리즘] #10818번 : 배열/속도 향상

Olive Dev 2021. 6. 19. 15:13

이 문제를 푸는데 게속 시간 초과가 났다.

let line = Int(readLine()!)!
var num = readLine()!.split(separator: " ").map({Int(String($0))!})
var maxNum: Int = -1000000
var minNum: Int = 1000000

for i in 0...num.count-1 {
    if num[i] > maxNum {
        maxNum = num[i]
    }
    if num[i] < minNum {
        minNum = num[i]
    }
}
print("\(minNum) \(maxNum)")

첫 제출한 코드인데 num.min, num.max로 간결하게 바꿔도 동일한 오류가 났다.

 

 

구글링해 본 결과 

var num = readLine()!.split(separator: " ").map({Int($0)!})

이 부분이 문제였는데, 맵핑할 때 이 코드는

string ->Int 로 형변환하는데,

 

var num = readLine()!.split(separator: " ").map({Int(String($0))!})

이렇게 String -> char -> Int 로 형변환을 하는게 더 빠르다.

이유는 아무리 찾아봐도 모르겠음.. (알게되면 추가예정)

 

 

 

결론은 10818번

let line = Int(readLine()!)!
var num = readLine()!.split(separator: " ").map({Int(String($0))!})
print("\(num.min()!) \(num.max()!)")

 

Comments