- 첫번째 풀이
1def solution(elements): 2 result = set() 3 length = len(elements) 4 elements = elements*2 5 for i in range(length): 6 temp = 0 7 for j in range(length): 8 temp += elements[i+j] 9 result.add(temp) 10 11 return len(result)
- 개선한 풀이
1def solution(elements): 2result = set() 3length = len(elements) 4for i in range(length): 5 temp = 0 6 for j in range(length): 7 temp += elements[(i+j)%length] 8 result.add(temp) 9 10return len(result)
문제
- 주어진 정수 배열로 원형 수열을 만든다
- 원형 수열의 연속된 부분 수열의 합의 개수를 구하여라
- TC
- input
[7,9,1,1,4]
- ouput
18
- input
해결방법
- 첫번째 풀이에서는 배열을 2배로 늘려서 원형 수열을 만들었다
- 개선한 풀이에서는 mod 연산을 이용해서 원형 수열을 만들었다
- set를 이용해서 중복을 제거하고 원소 개수를 반환하였다