Algorithm
SwiftUI: 연속 부분 수열 합의 개수
songmoro
2024. 3. 18. 18:27
728x90
프로그래머스 연속 부분 수열 합의 개수
앞과 뒤가 이어진 수열(= 연속 수열)에서 도출 될 수 있는 합의 개수를 찾는 문제
Set을 사용한 이중 for문으로 구현
func solution(_ elements:[Int]) -> Int {
var numbers = Set<Int>()
for i in 0..<elements.count {
var number = 0
for j in i..<(i + elements.count) {
number += elements[j % elements.count]
numbers.insert(number)
}
}
return numbers.count
}
// [7] [9] [1] [1] [4]
// [7, 9] [9, 1] [1, 1] [1, 4] [4, 7]
// = 16 10 2 5 11
// [7, 9, 1] [9, 1, 1] [1, 1, 4] [1, 4, 7] [4, 7, 9]
// = 17 11 6 12 20
// [7, 9, 1, 1] [9, 1, 1, 4] [1, 1, 4, 7] [1, 4, 7, 9] [4, 7, 9, 1]
// = 18 15 13 21
// [7, 9, 1, 1, 4]
// elements result
// [7,9,1,1,4] 18
// 1 = [1, 4, 7, 9]
// 2 = [2, 5, 10, 11, 16]
// 3 = [6, 11, 12, 17, 20]
// 4 = [13, 15, 18, 21]
// 5 = [22]
// n = [1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22]
728x90