1697번 - 숨바꼭질
아래는 정답으로 제출된 코드입니다.
그전에 계속 인덱스 에러가 났었는데 아래 조건문을 이렇게 작성했었습니다.
if not visited[i] and 0 <= i <= MAX:
작은 값을 입력하면 값이 잘 나오는데, 큰 값을 넣으면 인덱스 에러가 발생했습니다.
그래서 혹시나 해서 앞 뒤 순서를 바꾸니까 정답 처리가 되더라고요. 어떤 게 문제인 걸까요?
파이썬은 if a and b 일 때 a가 false이면 b를 계산하지 않습니다.
여기서 i는 q-1, q+1, 2*q 중에 하나이고 visitied[i]부분이 먼저 오면 인덱스를 벗어나면서 에러가 발생할 수 있지만, 0<=i<=Max가 먼저 오면 에러가 발생하지 않을 때만 visited[i]를 계산하기 때문에 문제가 생기지 않습니다.
댓글을 작성하려면 로그인해야 합니다.
lazarus0320 1년 전
아래는 정답으로 제출된 코드입니다.
그전에 계속 인덱스 에러가 났었는데 아래 조건문을 이렇게 작성했었습니다.
if not visited[i] and 0 <= i <= MAX:
작은 값을 입력하면 값이 잘 나오는데, 큰 값을 넣으면 인덱스 에러가 발생했습니다.
그래서 혹시나 해서 앞 뒤 순서를 바꾸니까 정답 처리가 되더라고요. 어떤 게 문제인 걸까요?