반응형
https://school.programmers.co.kr/learn/courses/30/lessons/131701
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(elements):
result = set()
len_ = len(elements)
elements = elements * 2
for l in range(1, len_+1):
for i in range(len(elements)):
result.add(sum(elements[i:l+i]))
return len(result)
먼저 중복되는 값을 제외하기 위하여 result 변수로 set() 집합 자료구조를 선언합니다.
원본 elements의 길이를 len_로 설정합니다.
원형 수열의 형태로 만들기 위하여 element * 2를 하여 수열을 연속적으로 보이게 합니다.
- [7,9,1,1,4] --> [7,9,1,1,4,7,9,1,1,4]
위의 리스트의 형태로 볼 수 있듯이 4 다음 숫자로 7이 등장하는 것을 볼 수 있습니다.
위의 이중 반복문을 돌리면 결과는 아래와 같습니다.
1부터 원본 elements의 길이 만큼의 부분 수열이 리스트 형태로 출력되는 것을 볼 수 있습니다.
위의 리스트를 합하고 result 변수에 담아 result의 길이를 return 하여 문제를 해결하였습니다.
반응형
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 크기가 작은 부분문자열 파이썬(Python) (0) | 2022.12.23 |
---|---|
[코딩테스트] 프로그래머스 N개의 최소공배수 파이썬(Python) (0) | 2022.12.22 |
[코딩테스트] 프로그래머스 명예의 전당 (1) 파이썬(Python) (0) | 2022.12.20 |
[코딩테스트] 프로그래머스 저자 별 카테고리 별 매출액 집계하기 MySQL (0) | 2022.12.19 |
[코딩테스트] 프로그래머스 조건에 맞는 도서와 저자 리스트 출력하기 MySQL (0) | 2022.12.19 |