프로그래머스 131701번 문제 "연속 부분 수열 합의 개수" Lv.2 - 파이썬, 자바
[프로그래머스] 연속 부분 수열 합의 개수 Lv.2 - [파이썬/python] [자바/java]
💻 문제 설명
철호는 수열을 가지고 놀기 좋아합니다. 어느 날 철호는 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 일반적인 수열에서 처음과 끝이 연결된 형태의 수열을 말합니다. 예를 들어 수열 [7, 9, 1, 1, 4] 로 원형 수열을 만들면 다음과 같습니다.
원형 수열은 처음과 끝이 연결되어 끊기는 부분이 없기 때문에 연속하는 부분 수열도 일반적인 수열보다 많아집니다. 원형 수열의 모든 원소 elements
가 순서대로 주어질 때, 원형 수열의 연속 부분 수열 합으로 만들 수 있는 수의 개수를 return 하도록 solution 함수를 완성해주세요.
🚨 제한사항
- 3 ≤
elements
의 길이 ≤ 1,000 - 1 ≤
elements
의 원소 ≤ 1,000
!!!정답 주의!!!
🌟 소스 코드
[Python] 파이썬 코드
[Java] 자바 코드
import java.util.Set;
import java.util.HashSet;
class Solution {
public int solution(int[] elements) {
int l = elements.length;
// Set을 통해 중복 방지
Set<Integer> sum_set = new HashSet<>();
// 원소 하나를 기준으로 차례대로 더한 후
// 더할 때 마다 Set에 추가
for(int i=0; i<l; i++){
int v = elements[i];
sum_set.add(v);
for(int j=i+1; j<i+l; j++){
v += elements[j%l];
sum_set.add(v);
}
}
return sum_set.size();
}
}
🏳🌈 테스트 결과
[Python] 파이썬 - 테스트 결과 | [Java] 자바 - 테스트 결과 |
'코딩테스트' 카테고리의 다른 글
[프로그래머스] H-Index - Lv.2 (35) | 2024.01.10 |
---|---|
[프로그래머스] n^2 배열 자르기 - Lv.2 (34) | 2024.01.07 |
[프로그래머스] 점프와 순간 이동 - Lv.2 (22) | 2024.01.02 |
[프로그래머스] 데이터 분석 - [PCCE 기출문제] 10번 (20) | 2023.12.12 |
[프로그래머스] 이웃한 칸 - [PCCE 기출문제] 9번 (11) | 2023.12.11 |