알고리즘
[프로그래머스] 연속 부분 수열 합의 개수
hminor
2023. 6. 20. 13:53
반응형
# 원래 dic의 값이 0 이 아닐때도 조건문을 통해 제어를 했는데 굳이 인가 싶어서 뺌
# 아래 코드보다 시간 효율이 더 좋음
def solution(elements):
dic, ln = {i:0 for i in range(sum(elements)+1)}, len(elements)
for i in range(ln):
hap = elements[i]
dic[hap] = hap
for j in range(i+1, i+ln):
hap += elements[j%ln]
dic[hap] = hap
return len([ i for i in list(dic.values()) if i != 0])
# 연결 리스트로 푼게 아닌 기존 배열을 두배로 늘려서 하다보니 엄청 시간이 길어짐
# 풀어지긴 함
def solution(elements):
dic, ln = {i:0 for i in range(sum(elements)+1)}, len(elements)
elements_double = elements*2
for i in range(1, ln+1):
for j in range(ln):
if not dic[sum(elements_double[j:j+i])]: dic[sum(elements_double[j:j+i])] = sum(elements_double[j:j+i])
return len([ i for i in list(dic.values()) if i != 0])