강의로 돌아가기
김동현

슬라이싱을 어떻게 활용하나요???/

문제를 풀긴 했는데 슬라이스로 어떻게 푸는질 모르겠네요 i = L.index(x)로 잡고 L[i+1:].index(x)를 한다고 생각했는데 i가 L 의 마지막 인덱스인 경우 오류가...

작성중인 코드―solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(L, x):
    num = 0
    answer = []
    if x not in L:
        answer = [-1]
    else:
        while True:
            num = L.index(x)
            answer.append(num)
            L[num] = " "
            if x not in L:
                break
    return answer
1 개의 답변
이시윤

아래와 같은 방법이 한 가지 가능한 해답이 될 겁니다.

(1) 0 에서 시작하는 변수를 하나 정합니다. (아래에서는 i 라고 하기로 하지요.)
(2) L[i:] 의 슬라이스에서 x 가 발견되는 인덱스를 구합니다. (아래에서는 p 라고 하기로 하지요.)
(3) ip 를 이용하여 리스트 L 내에서 이 원소가 발견된 위치를 계산하여 answer 에 덧붙입니다.
(4) i 를 적당히 조절하고 위 (2) 부터 반복합니다.

이 때 어떤 조건이 만족하면 어떤 방법으로 순환문을 탈출할지를 고려하여 코드를 작성합니다.

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