split vs component

readLine()으로 받아온 문자열을 처리하는 방법에는 split 과 component 두 가지가 있다.

let line1 = readLine().split(seperator: " ")

또는

let line2 = readLine().component(seperatedBy: " ")

이렇게 두 개가 있는데 split은 substring 배열 [substring] 을 반환하고,
component는 string 배열 [String]을 반환한다.

이 때 대부분의 알고리즘 문제에서 배열 element들은 정수형이므로 배열의 elements를 mapping하여 간단히 정수형으로 변환해줄 수 있다.


let IntLine1 = readLine().split(seperator: " ").map { Int(String($0))! }

또는

let IntLine2 = readLine().components(seperatedBy: " ").map { Int($0)! }

이 때 split으로 쪼갠 경우 mapping 시에 Int(String())으로 묶어야 시간초과를 면할 수 있다...

또한 IntLine2보다 IntLine1가 더 빠르다 ..

솔직히 어디서 차이가 나는지 모르겠다 .. fuck..

어쨌든 알고리즘 풀 때

  1. split으로 쪼개자
  2. 문자열로 변환 후 정수형으로 변환하자 -> Int(String($0)

좋은 웹페이지 즐겨찾기