1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/131701
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
원형 수열의 원소가 주어질 때,
연속된 부분 수열의 합으로 만들 수 있는 수의 개수를 구하는 문제이다.
2. 풀이
연속 된 '부분' 수열이기 때문에 elements 원형 수열을 두 바퀴 까지만 생각해주면 된다.
처음 문제를 봤을 때 이 부분을 생각하지 못해서 막막했었다.
이 부분을 생각해낸다면 elements에 elements를 이어붙인 배열을 만들고 리스트를 슬라이싱해서 부분합의 종류를 구해주면 된다.
파이썬에서 리스트의 중복된 원소를 제거하는 방법에는
1. set 활용하기
2. for문과 중복을 체크할 새로운 리스트 활용하기
3. dict 활용하기
이렇게 3가지 방법이 있는데 이번 문제에서는 그 중에서 첫 번째 방법을 활용하였다.
set 자료구조의 res를 선언해주고 2중 for문을 활용해서 슬라이싱 해주었다.
sum() 메소드를 통해서 부분합을 구하였고 이를 set()에 집어넣어서 중복을 제거해 주었다.
3. 코드
Reference:
https://blockdmask.tistory.com/543
[python] 파이썬 리스트 중복 제거 방법 3가지
안녕하세요. BlockDMask입니다. 오늘은 파이썬 리스트에서 중복된 값을 삭제할 수 있는 방법 3가지에 대해서 알아보겠습니다. 1. set 이용한 리스트 중복 제거 2. for 반복문을 이용한 리스트 중복 제
blockdmask.tistory.com
'코딩 테스트 연습 > 프로그래머스' 카테고리의 다른 글
[Python]Programmers H-Index(lv2) (0) | 2024.03.17 |
---|---|
[Python]Programmers 할인 행사(lv2) (0) | 2024.03.16 |
[Python]Programmers 할인 행사(lv2) (0) | 2024.03.14 |
[Python]Programmers 귤 고르기(lv2) - Counter (0) | 2024.03.10 |
[Python]Programmers 괄호 회전하기(lv2) (0) | 2024.03.09 |