728x90
반응형
첫번째 코드
위도우를 통해 계산한다.
이때 시작 인덱스와 끝 인덱스, 그리고 sequence 길이 자체를 헷갈리지 말아야 한다.
비내림차순인데 수열이므로 오름차순일 것이고, 끝에서부터 계산하면 가장 짧은 수열을 구할 수 있다.
하지만 동일한 숫자가 반복되는 경우, 가장 앞에 있는 인덱스를 가져와야 하므로, 현재 숫자가 이전 숫자와 동일한 값인지 판단해야 한다.
def solution(sequence, k):
answer = []
num = 0
end_index = len(sequence) - 1
for start_index in range(len(sequence)-1, -1, -1):
num += sequence[start_index]
if num > k:
num -= sequence.pop()
if num == k:
while sequence[start_index-1] == sequence[-1] and start_index > 0:
start_index -= 1
sequence.pop()
return [start_index, len(sequence)-1]
통과!
도움을 받았지만, 한번 헷갈리면 영원히 맴맴 도는 문제이다.
링크
반응형