[프로그래머스] 연속 부분 수열 합의 개수(파이썬)

WJ·2023년 6월 23일

코딩테스트 대비

목록 보기
8/8
post-thumbnail

문제

연속 부분 수열 합의 개수

문제 설명

제한사항

🧭 접근

단순 반복으로 진행시 시간초과가 발생합니다.
따라서 이전에 구했던 연속 부분 수열의 값에 다음 인덱스의 값을 더해 중복된 계산을 하지 않도록 하였습니다.

✔ 풀이

  1. 처음 길이 1의 연속 부분 수열을 반복문을 통해 초기화
  2. 이전에 구했던 결과 배열의 마지막 5개에 다음 인덱스의 값 더하기
  3. elements의 길이만큼 반복
  4. set을 통해 배열의 중복 제거후 길이 리턴

📙 소스 코드

def solution(elements):
    res = []
    for e in elements: # 길이가 1인 수열으로 배열 초기화
        res.append(e)
    
    for i in range(1,len(elements)): # 길이
        sum_list = []
        for j in range(len(elements),0,-1): # 인덱스
            sums = res[-j] + elements[-j+i]
            sum_list.append(sums)
        for e in sum_list:
            res.append(e)
            
    return len(set(res))
profile
주니어 개발자

0개의 댓글