내 인생은 개발 중
[프로그래머스] 연속 부분 수열 합의 개수 - Python 본문
https://school.programmers.co.kr/learn/courses/30/lessons/131701
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
처음 풀이
def solution(elements):
answer = 0
sum_list = set(elements)
n = len(elements)
for i in range(n):
for length in range(1, n + 1):
if i + length > n:
temp = sum(elements[i : n]) + sum(elements[:(i + length) % n])
else:
temp = sum(elements[i : i + length])
sum_list.add(temp)
return len(sum_list)
나중 풀이
def solution(elements):
n = len(elements)
sum_list = set()
for i in range(n):
temp = elements[i]
sum_list.add(temp)
for j in range(i + 1, i + n):
temp += elements[j % n]
sum_list.add(temp)
return len(sum_list)
처음에는 슬라이싱을 이용하여 풀어서 시간이 많이 걸렸었다.
그래서 다른 풀이를 보고 슬라이싱을 하는 것이 아닌 for 문을 돌면서 바로 더해주는 방식으로 풀어주니 훨씬 시간이 더 짧게 걸릴 수 있었다.
역시 똑똑한 사람들 너무 많아,, 나도 열심히 해야지!
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 디스크 컨트롤러 - Python (1) | 2024.06.11 |
---|---|
[프로그래머스] 괄호 회전하기 - Python (0) | 2024.06.05 |
[프로그래머스] 주차 요금 계산 - Python (0) | 2024.05.22 |
[프로그래머스] 짝지어 제거하기 - Python (0) | 2024.05.20 |
[프로그래머스] 롤케이크 자르기 - Python (0) | 2024.05.19 |
Comments