문제 소개
문제 자체는 아주 간단하지만 N이 10억이하의 자연수라는 조건이 있기 때문에 1부터 숫자를 늘려가며 판별하면 무조건 시간 초과가 걸린다.
문제 풀이
let input = readLine()!
let a = Array(input.reversed()).map { Int(String($0))! }
let n = Int(input)!
var ans = Array(repeating: 0, count: 10)
for (i, e) in a.enumerated() {
let p = Int(pow(10.0, Double(i)))
for j in 0...9 {
ans[j] += n / (p * 10) * p
}
if e > 0 {
for j in 1..<e {
ans[j] += p
}
} else {
ans[0] -= p
}
ans[e] += n % p + 1
}
print(ans.map { String($0) }.joined(separator: " "))
'→ Problems' 카테고리의 다른 글
[Algorithm] 백준 - 15824번 너 봄에는 캡사이신이 맛있단다 (Swift) (0) | 2024.07.07 |
---|---|
[Algorithm] 백준 - 1334번 철로 (Swift) (0) | 2024.07.07 |
[Algorithm] 프로그래머스 - 도넛과 막대 그래프 (Swift) (0) | 2024.07.05 |
[Algorithm] 백준 - 11723번 집합 (Swift) (0) | 2024.07.02 |
[Algorithm] 백준 - 14891번 톱니바퀴 (Swift) (0) | 2024.06.29 |