강의로 돌아가기
김동규

슬라이싱 활용

def solution(L, x):
    answer = []
    for i in range(len(L)):
        if x in L:
            if x == L[i]:
                answer.append(i)
                continue
        else:
            answer = [-1]

    return answer

저는 리스트의 인덱스만 참조했는데,
슬라이싱을 제대로 활용하는 방법이 궁금합니다.

1 개의 답변
이시윤

아래 다른 질문에서와 마찬가지로, 이 코드에서도 if x in L: 의 조건을 순환문 안에 넣을 이유가 없습니다. 그것을 제외하면 좋은 답안입니다.

힌트에 쓴 슬라이싱에 대한 언급은, 이 문제를 해결하기 위한 다른 하나의 방법으로서
(1) 메서드 index() 를 이용하여 xL 안에서 발견되는 위치를 찾음
(2) 이 위치를 answer 에 담음 (덧붙임)
(3) 발견된 위치의 뒷쪽인 부분 리스트에 대하여 위 과정을 반복 (즉, 슬라이스를 이용함)
이라는 식인데, 이것은 슬라이싱을 활용하는 연습이 되기는 하지만 위에 적은 코드보다 별로 더 나을 것이 없는 코드가 될 것입니다. 그러나 한번 연습해보시는 것도 프로그래밍 테크닉을 익히는 데에는 도움이 될 것입니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.