문제
해결 과정
나의 풀이
while
문을 통해서 elements
의 첫번째 원소부터 길이 n
개씩 result
에 add
- 원소 + n이 배열의 길이가 넘어갈 때 (원소 4부터 길이 3이라면 4, 7,9)
elements[i:]+elements[:i+n-len(elements)]
다른 풀이
- 처음에 elements를 elements * 2로 정의
- [7, 9, 1, 1, 4, 7, 9, 1, 1, 4]
- 이중포문으로 부분 수열의 합을 넣는다.
시행착오
- 리스트를 쓰니까 시간 초과 -> 중복 불가능한 집합 자료형 사용
나의 풀이
def solution(elements):
result = set()
n = 0
while n != len(elements):
n += 1
for i in range(len(elements)):
if i+n > len(elements):
result.add(sum(elements[i:]+elements[:i+n-len(elements)]))
else:
result.add(sum(elements[i:i+n]))
return len(result)
다른 풀이
def solution(elements):
result = set()
elementLen = len(elements)
elements = elements * 2
for i in range(elementLen):
for j in range(elementLen):
result.add(sum(elements[j:j+i+1]))
return len(result)