우당탕탕 개발일지
[연습문제] 프로그래머스 level 2 연속 부분 수열 합의 개수 (Python 파이썬) 본문
💡문제 링크
💡문제 분석 요약
원형 수열의 연속 부분 수열 합으로 만들 수 있는 수의 개수를 return하는 함수 작성
💡알고리즘 설계
직선 수열 형태의 elements를 2배해서 두 번 작성하기
예. elements = [7, 9, 1, 1, 4] -> elements 2배 = [7, 9, 1, 1, 4, 7, 9, 1, 1, 4]
💡코드
def solution(elements):
l = len(elements)
elements *= 2
s = []
for i in range(1, l+1):
s += [sum(elements[j:j+i]) for j in range(l)]
return len(list(set(s)))
💡 다른 풀이
def solution(elements):
l = len(elements)
elements += elements
s = []
for i in range(1, l+1):
for j in range(l):
s.append(sum(elements[j:j+i]))
return len(list(set(s)))
처음에는 이렇게 했다.
리스트문 [ ] 안에 for문을 써서 반복문 코드 길이를 줄였다.
elements += elements 대신에 elements *= 2로 바꿔줬다.
'알고리즘' 카테고리의 다른 글
[연습문제] 프로그래머스 level 3 최고의 집합 (Python 파이썬) (0) | 2024.10.17 |
---|---|
[그리디] 프로그래머스 level 3 단속카메라 (Python 파이썬) ⭐ (0) | 2024.10.15 |
[해시] 프로그래머스 level 3 야근지수 (Python 파이썬) - 해결 못 함 (1) | 2024.10.03 |
[동적계획법(Dynamic Programming)] 프로그래머스 level 3 정수 삼각형 (Python 파이썬) (0) | 2024.09.29 |
[힙(Heap)] 프로그래머스 level 3 이중우선순위큐 (Python 파이썬) (0) | 2024.09.28 |