// 백준 2588 곱셈
let nString = readLine()!
let mString = readLine()!
let n = Int(nString)!
let m = Int(mString)!
let mArray = mString.map { Int(String($0))! }
print(n * mArray[2])
print(n * mArray[1])
print(n * mArray[0])
print(n * m)
정수의 각 자릿수에 접근하는 방법을 알 수 있는 문제입니다.
파이썬이 string[0]처럼 subscript를 통해서 random access가 가능한 것과는 달리 스위프트의 String은 해당 방법이 불가능합니다. 또한 스위프트의 String은 Array와는 달리 길이를 구하거나 특정 인덱스에 접근할 때 O(1)이 아니라 O(n)의 시간복잡도를 가집니다.
따라서 String의 각 자릿수에 접근할 때는 String을 그대로 사용하는 것보다는 위 풀이처럼 Array로 바꾸어 접근하는 것이 더 좋은 방법입니다.