readLine()으로 받아온 문자열을 처리하는 방법에는 split 과 component 두 가지가 있다.
let line1 = readLine().split(separator: " ")
또는
let line2 = readLine().component(seperatedBy: " ")
이렇게 두 개가 있는데 split은 substring 배열 [substring] 을 반환하고,
component는 string 배열 [String]을 반환한다.
이 때 대부분의 알고리즘 문제에서 배열 element들은 정수형이므로 배열의 elements를 mapping하여 간단히 정수형으로 변환해줄 수 있다.
let IntLine1 = readLine().split(separator: " ").map { Int(String($0))! }
또는
let IntLine2 = readLine().components(seperatedBy: " ").map { Int($0)! }
이 때 split으로 쪼갠 경우 mapping 시에 Int(String())으로 묶어야 시간초과를 면할 수 있다...
또한 IntLine2보다 IntLine1가 더 빠르다 ..
솔직히 어디서 차이가 나는지 모르겠다 .. fuck..
어쨌든 알고리즘 풀 때