숫자의 개수
처음 풀이
let A = Int(readLine()!)!
let B = Int(readLine()!)!
let C = Int(readLine()!)!
let resultArray = String(A * B * C).map { Int(String($0))! }
var countArray = [Int](repeating: 0, count: 10)
for num in resultArray {
countArray[num] += 1
}
for num in countArray {
print(num)
}
- [Int](repeating: , count: ): 특정 element를 n개 반복해서 만드는 메소드입니다.
개선된 풀이
var result = 1
(0..<3).forEach { _ in
result *= Int(readLine()!)!
}
var countArray = [Int](repeating: 0, count: 10)
while result > 0 {
let digit = result % 10
countArray[digit] += 1
result /= 10
}
countArray.forEach{ print($0) }
- forEach문을 사용하면 더 깔끔하게 반복문을 사용할 수 있다.
- forEach문을 사용하면 Array를 순회해야하는 동작을 더 편하게 할 수 있다.
- 10으로 나눈 나머지를 사용하면 자릿수에 더 쉽게 접근이 가능하다.