https://school.programmers.co.kr/learn/courses/30/lessons/131701
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 내가 작성한 코드
def solution(elements):
elements = elements + elements
result = set()
for step in range(1,len(elements)//2+1):
start = 0
while start < (len(elements)//2):
result.add(sum(elements[start:start+step]))
start+=1
return len(result)
1. 수열의 사이클을 돌기 위해 elements 수열 두 개를 붙여준다.
2. 이중 반복문을 돌리며 집합에 원소를 넣어준다.
나는 while문으로 step과 start를 늘려가며 풀었는데 아래와 같이 이중 for문을 이용하면 더 손쉽게 풀 수 있다.
def solution(elements):
answer = 0
elements = elements + elements
s = set()
for i in range(len(elements)):
for j in range(len(elements)):
s.add(sum(elements[i:i+j]))
return len(s)
'🔅코딩테스트 공부🔅 > ❗프로그래머스(Lv.2)' 카테고리의 다른 글
[프로그래머스] Level2 튜플(python) (0) | 2023.04.26 |
---|---|
[프로그래머스] Level2 문자열 압축(python) (0) | 2023.04.25 |
[프로그래머스] Level2 방문 길이(python) (0) | 2023.04.23 |
[프로그래머스] Level2 타겟 넘버(python) (0) | 2023.04.21 |
[프로그래머스] Level2 후보키(python) (0) | 2023.04.20 |
댓글