728x90
연속 부분 수열의 합의 개수
https://school.programmers.co.kr/learn/courses/30/lessons/131701
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
코드
- 시간 초과
def solution(elements):
answer = []
new_elements = elements * 2
for i in range(len(elements)):
for j in range(len(elements)):
sum_result = sum(new_elements[j:j+i+1])
if sum_result not in answer:
answer.append(sum_result)
else:
pass
return len(answer)
- 원 형태이기 때문에 리스트를 2개를 이어 붙여서 계산하하도록 만들어줌
- 2개의 for문을 사용, j:j+i+1
- set 자료형을 사용해서 시간 초과 해결
- set: 중복 허용 X
def solution(elements):
answer = set()
new_elements = elements * 2
for i in range(len(elements)):
for j in range(len(elements)):
sum_result = sum(new_elements[j:j+i+1])
answer.add(sum_result)
return len(answer)
728x90
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 할인 행사 - 파이썬 (0) | 2024.06.18 |
---|---|
[프로그래머스] 괄호 회전하기 - 파이썬 (0) | 2024.06.18 |
[프로그래머스] 귤 고르기 - 파이썬 (0) | 2024.06.18 |
[프로그래머스] 영어 끝말잇기 - 파이썬 (1) | 2024.06.17 |
[프로그래머스] 멀리 뛰기 - 파이썬 (0) | 2024.06.17 |