Olive Study Room
[백준 알고리즘] #10818번 : 배열/속도 향상 본문
이 문제를 푸는데 게속 시간 초과가 났다.
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()!)")
'cs > 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 5. 1차원 배열 (0) | 2021.06.20 |
---|---|
[백준 알고리즘] #2577번 : 정수가 포함하는 숫자 개수 출력 / forEach (0) | 2021.06.19 |
[백준 알고리즘] #10951번 : EOF (0) | 2021.06.18 |
[백준 알고리즘] #2439번 : stride, print(_:separator:terminator:) (1) | 2021.06.14 |
[백준 알고리즘] 1. 입출력과 사칙연산 / 2. if문 / 3. for문 / 4. while문 (0) | 2021.06.08 |
Comments