안녕하세요. 이번에는 프로그래머스 연속 부분 수열 합의 개수 문제를 풀어보려고 합니다.
Problem
https://school.programmers.co.kr/learn/courses/30/lessons/131701
Solution
class Solution {
fun solution(elements: IntArray): Int {
var hashSet = HashSet<Int>()
val arr = elements.clone() + elements.clone()
(1..elements.size).forEach { i ->
elements.forEachIndexed { index , int ->
hashSet.add(arr.sliceArray(index until index + i).sum())
}
}
return hashSet.size
}
}
이번 문제는 hashSet을 사용해서 중복처리를 하는 방법으로 문제를 접근해 보았습니다. forEachIndexed를 사용해서 arr를 잘라주고 그 값들을 set에 추가하는 방법입니다.
1. 다른 사람 코드
class Solution {
fun solution(elements: IntArray): Int {
val doubling = elements + elements
val result = HashSet<Int>()
for(i in 0..elements.size - 1) {
result.addAll((elements.indices).map {
doubling.slice(it .. it + i).sum()
})
}
return result.size
}
}
이번 문제의 다른 사람 코드는 저의 코드와 비슷하게 문제를 푼 것을 확인할 수 있었습니다.Performance
1. 내가 작성한 코드 | 2. 다른 사람 코드 |
반응형
'프로그래머스 Algorithm' 카테고리의 다른 글
[프로그래머스] 괄호 회전하기 Kotlin (0) | 2024.01.03 |
---|---|
[프로그래머스] 카드 뭉치 Kotlin (0) | 2024.01.02 |
[프로그래머스] 명예의 전당 Kotlin (0) | 2023.12.29 |
[프로그래머스] 귤 고르기 Kotlin (2) | 2023.12.23 |
[프로그래머스] 추억 점수 Kotlin (2) | 2023.12.22 |