강의로 돌아가기
정재원

테스트 4개만 성공하고 다 틀렸습니다 왜일까요..

def solution(prior,location):

ans = 0
idx_val = {}

idx_val = [[idx,p] for idx,p in enumerate(prior)]

for i in range(len(idx_val)):
    if max(prior) > idx_val[0][1]:
        first = idx_val[0]
        idx_val = idx_val[1:]
        idx_val.append(first)

for i in range(len(idx_val)):
    ans +=1
    if location == idx_val[i][0]:
        return ans

테스트 4개만 맞고 다 틀리네요 어떤 문제가 틀린지 모르니까 코드를 손도 못 대겠습니다..

작성중인 코드―solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def solution(prior,location):

    ans = 0
    idx_val = {}

    idx_val = [[idx,p] for idx,p in enumerate(prior)]

    for i in range(len(idx_val)):
        if max(prior) > idx_val[0][1]:
            first = idx_val[0]
            idx_val = idx_val[1:]
            idx_val.append(first)

    for i in range(len(idx_val)):
        ans +=1
        if location == idx_val[i][0]:
            return ans
1 개의 답변
minsoo kim

주석도 문제 해석도 안 쓰여있어서 정확히 어떻게 짜셨는지 이해는 못했지만
포문으로 저렇게 똑같은 배열을 기준으로 돌리면 append 하고 나서의 index와 하기 전에 index가 달라집니다.
예를 들면
i =0 -> 1
[1,2,3,4]

i =1 -> 3 (2는 ..? )
[2,3,4,1]
이렇게 되는거죠
그래서 for 문을 돌릴때마다 index 와 비교 요소간의 오류가 생기게 되어서 문제가 생기기 쉽습니다.

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