_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (272)
    • 데이터 엔지니어링 (29)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

[코딩테스트] 프로그래머스 연속 부분 수열 합의 개수 파이썬(Python)
코딩테스트

[코딩테스트] 프로그래머스 연속 부분 수열 합의 개수 파이썬(Python)

2022. 12. 21. 19:19
반응형

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
    '코딩테스트' 카테고리의 다른 글
    • [코딩테스트] 프로그래머스 크기가 작은 부분문자열 파이썬(Python)
    • [코딩테스트] 프로그래머스 N개의 최소공배수 파이썬(Python)
    • [코딩테스트] 프로그래머스 명예의 전당 (1) 파이썬(Python)
    • [코딩테스트] 프로그래머스 저자 별 카테고리 별 매출액 집계하기 MySQL
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바