본문 바로가기
알고리즘

[Swift] 백준 1292번 쉽게 푸는 문제

by 고고 2022. 3. 18.

링크: https://www.acmicpc.net/problem/1292

 

1292번: 쉽게 푸는 문제

첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다.

www.acmicpc.net

 

 

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, +))

댓글