(Swift) 백준 2677 숫자의 개수

SteadySlower·2022년 5월 8일
0

Coding Test

목록 보기
17/298

숫자의 개수

처음 풀이

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으로 나눈 나머지를 사용하면 자릿수에 더 쉽게 접근이 가능하다.
profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글