문제 : https://school.programmers.co.kr/learn/courses/30/lessons/178870
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
첫번째 풀이 (통과)
def solution(sequence, k):
answer = []
right = 0
count = 0
for left in range(len(sequence)):
while right < len(sequence) and count < k:
count += sequence[right]
right += 1
if count == k:
if not answer:
answer = [left, right-1]
else:
answer = [left, right-1] if answer[1] - answer[0] > right - 1 - left else answer
count -= sequence[left]
return answer
투포인터를 사용해서 해결
1. 합이 작으면 오른쪽 포인터를 이동
2. 크거나 같으면 다음 왼쪽 포인터를 이동
'📝 PS > 프로그래머스 (Python)' 카테고리의 다른 글
[프로그래머스] 두 원 사이의 정수 쌍 (파이썬, Python) (0) | 2023.04.18 |
---|---|
[프로그래머스] 요격 시스템 (파이썬, Python) (0) | 2023.04.15 |
[프로그래머스] 과제 진행하기 (파이썬, Python) (0) | 2023.04.13 |
[프로그래머스] 추억 점수 (파이썬, Python) (0) | 2023.04.13 |
[프로그래머스] 달리기 경주 (파이썬, Python) (0) | 2023.04.06 |
댓글