강의로 돌아가기
신승윤

Slice를 이용한 코드를 알고 싶습니다.

index를 이용하면, 맨 앞의 x값만 출력해서, 그 뒤에 중복된 숫자를 어떠한 방식으로 추출해낼지 감이 잘 안오네요..
아래는 for문으로 모든 리스트를 비교해서 추출해본 코딩입니다. ㅠ

def solution(L, x):
    d=[]

    if x not in L:
        answer=-1
    else:
        for i in range(0,len(L)):
            if(L[i] == x):
                d.append(i)
    answer = d
    return answer

L=list(map(int,input().split()))
x=int(input())

answer = solution(L,x)
print(answer)
1 개의 답변
이시윤

이 코드는, 값이 같은 원소가 하나도 발견되지 않는 경우 [-1] 을 리턴하라는 조건을 만족하지 못함을 제외하면 올바르게 동작할 것입니다.

리스트 slicing 을 이용하려면, 발견된 위치부터 그 리스트의 끝까지를 슬라이스로 잘라내고, 그 안에서 index() 메서드를 호출하여 몇 번째 원소에서 해당 값이 발견되는지를 알아내고, 이것을 원래 잘라내기 이전의 리스트에서의 인덱스가 되도록 간단한 계산 (덧셈) 을 통해 계산하는 방식을 사용하게 됩니다.

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