bit가 눈 앞에서 왔다갔다

deque 사용하면서 리스트 차원 틀림 본문

언어!/피드백

deque 사용하면서 리스트 차원 틀림

헬린인형 2022. 2. 4. 17:31

치명적인 실수를 했는데 거기서 시간을 굉장히 많이 까먹었다.

처음에 deq 선언을 이렇게 함

deq = deque([begin, 0])

1차원 리스트인거임

근데 이래 놓고 

cur, depth = deq.popleft()

여기서 에러나니까 ???? 하고 한참 헤매었음

저건 뭐 popleft를 두 번하면 되니까 해결 한다면 할 수 있었지만 그 다음에서 문제가 발생했다.

if cnt == 1:
    visited[i] = True
    deq.append([words[i], depth + 1])

이렇게 append 해버린 것이었다.. 그러니까 위에서는 1차원 리스트고 밑에서는 2차원 리스트로 넣어버린 것이다...

당연히 루프를 돌면서 popleft()를 두번 한 곳에서 에러가 발생했고 또 어리둥절했음.

발견 못해서 디버깅해야겠다 싶어서 뒤늦게 파이참 깔고 디버깅 돌림,,

발견해서 정신 차리고 deq을 2차원 리스트로 고쳤다.

deq = deque([[begin, 0]])  # 고침

while deq:
    cur, depth = deq.popleft()

popleft도 처음 바라던 데로 한 번에 해버릴 수 있었고.

결론: deq 선언할 때 리스트 차원 조심할 것

반응형

'언어! > 피드백' 카테고리의 다른 글

JAVA) 인덱스 확인  (0) 2021.05.03
반복문 조건식 논리연산자  (0) 2021.04.29
Max-Priority Queue - 잘못된 인덱스 넘김  (2) 2019.11.08
ifstream 관련 - 초기화 안함  (1) 2019.11.05
Comments