728x90
https://school.programmers.co.kr/learn/courses/30/lessons/131701
나의 풀이
- 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합의 가지수가 몇개인가 구하는 문제
- [7,9,1,1,4] 배열을 [7,9,1,1,4,7,9,1,1,4] 로 만들어 문제를 해결함
- list의 sum을 이용해서 합을 구하고 set에 add를 이용해서 원소를 추가함
def solution(elements):
answer = set()
el_len = len(elements)
elements = elements+elements
for i in range(1,el_len+1):
for j in range(el_len):
answer.add(sum(elements[j:j+i]))
return len(answer)
다른 사람의 풀이
- list의 sum을 쓰지 않고 나머지 연산을 사용하여 문제를 해결함
- 오버플로우 값을 %을 이용하여 원래 위치로 돌려보냄
def solution(elements):
ll = len(elements)
res = set()
for i in range(ll):
ssum = elements[i]
res.add(ssum)
for j in range(i+1, i+ll):
ssum += elements[j%ll]
res.add(ssum)
return len(res)
728x90
'Coding Test > programmers' 카테고리의 다른 글
[Python] 파이썬 프로그래머스 선입 선출 스케줄링 (0) | 2023.03.09 |
---|---|
[Python] 파이썬 프로그래머스 빛의 경로 사이클 (0) | 2023.03.08 |
[Python] 파이썬 프로그래머스 n^2 배열 자르기 (0) | 2023.02.27 |
[Python] 파이썬 프로그래머스 귤 고르기 (0) | 2023.02.27 |
[Python] 파이썬 프로그래머스 튜플 (0) | 2023.02.10 |