Kotlin/Algorithm Problems
<프로그래머스> 연속 부분 수열 합의 개수(Lv.2)
re트
2023. 11. 16. 16:05
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/131701
이 문제는 보자마자 저번에 풀었던 '괄호 회전하기' 문제가 떠올랐다.
진짜 배열값을 옮기지는 않지만 옮기는 효과를 내는 나머지 연산..!!
이제 필요한 건 길이마다의 합을 구하는 거였다.
'길이마다 따로 구할 필요가 있나? 그냥 반복문 돌면서 더하는 걸 집합에 넣으면 될 거 같은데...?'
위의 생각이 번뜩 나서 그냥 시작 인덱스를 정하고 움직이면서 더하고 집합에 넣고를 반복했다.
그랬더니 맞았다...?!
해당 방법으로 작성한 코드는 다음과 같다.
class Solution {
fun solution(elements: IntArray): Int {
val sumSet = mutableSetOf<Int>()
for (i in elements.indices) {
var sum = 0
for (j in elements.indices) {
val curIdx = (i + j) % elements.size
sum += elements[curIdx]
sumSet += sum
}
}
return sumSet.size
}
}
반응형