링크: https://www.acmicpc.net/problem/1292
cur(현재 숫자)
count(현재 숫자의 개수)
현재 숫자와 현재 숫자의 개수가 똑같아질 때까지 수열에 넣고, 만약 똑같다면 현재 숫자를 +1 해줍니다.
수열을 만들면 A부터 B까지 reduce함수로 더해서 출력합니다.
import Foundation
let arr = readLine()!.split(separator: " ").map { Int(String($0))! }
let A = arr[0] - 1
let B = arr[1] - 1
var numbers = [Int]()
var cur = 1
var count = 0
while numbers.count <= B {
numbers.append(cur)
count += 1
if count == cur {
cur += 1
count = 0
}
}
print(numbers[A...B].reduce(0, +))
'알고리즘' 카테고리의 다른 글
[Swift] 백준 2581번 소수 (0) | 2022.03.18 |
---|---|
[Swift] 백준 10818번 최소, 최대 (0) | 2022.03.18 |
[Swift] 백준 1978번 소수 찾기 (0) | 2022.03.18 |
[Swift] 백준 2693번 N번째 큰 수 (0) | 2022.03.18 |
[Swift] 백준 2309번 일곱 난쟁이 (0) | 2022.03.18 |
댓글