https://www.acmicpc.net/problem/1292
1292번: 쉽게 푸는 문제
첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다.
www.acmicpc.net
문제접근
두 정수를 입력받고 for문을 이용해서 1에서 B번까지 반복을 하고, 이중 for문을 이용해서 1부터 i번까지만 반복한다. 만약 i가 2가 되면 '2', '2'가 배열에 들어가고 3이면 '3', '3', '3'이 들어간다. 그런 다음 A번에서 B번까지 arr배열에서 가져와 sum에 넣어 더해준다.
let nums = readLine()!.split(separator: " ").map{ Int($0)}
var arr: [Int] = []
var sum = 0
for i in 1...nums[1]! {
for _ in 1...i {
arr.append(i)
}
}
for i in nums[0]!...nums[1]! {
sum += arr[i-1]
}
print(sum)
let nums = readLine()!.split(separator: " ").map{ Int($0)}
정수를 여러 개 입력받기 위해서는 split과 map을 사용해주어야 한다. split()는 공백을 포함해서 입력을 할 때 사용한다고 생각하면 된다. ( 공백단위로 문자열을 쪼개기 위해서 split(separator:)를 사용한다. separator: 인자값으로는 어떤 문자값으로 쪼갤지 설정할 수 있다. 위 코드의 경우 " " 공백이라고 볼 수 있다. 이렇게 분리된 소요는 배열의 요소로 저장된다.
map() 메서드를 클로저로 사용하였다. 배열 하나하나의 아이템에 map 클로저 안의 코드를 적용시킨다는 뜻으로, 하나하나 Int로 바꾸어서 배열에 매핑시켜 준다.
그리고 nums 배열에 Int타입으로 들어가게 된다.
'Algorithm' 카테고리의 다른 글
| [Algorithm] Swift 백준 1157번 (3) | 2024.01.09 |
|---|---|
| [Algorithm] Swift 백준 14467번 (3) | 2023.11.18 |
| [Algorithm] Swift 백준 20546번 (2) | 2023.11.16 |
| [Algorithm] Swift 백준 3040번 (1) | 2023.11.07 |
| [Algorithm] Swift 백준 1316번 (3) | 2023.11.04 |