커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3주차 미로탈출 과제 len()함수의 값이 튜플로 정의되는 경우?
[스킬업] 실무에 바로 쓰이는 알고리즘 by Python v0
3주차
북마크
이*수
댓글
2
추천
0
조회수
7
조회수
7
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


안녕하세요. 3주차 미로탈출 과제 코드 작성 중 막히는 부분이 생겨 질문 드립니다.

행이 N개인 미로 크기를 정의하고자 N = len(miro) 함수를 썼는데

N이 튜플이라는? 에러가 발생하였습니다.

어디서 문제가 생긴건지 찾아봐도 잘 모르겠어서 도움 요청 드리고자 합니다.

왜 이런 결과가 나온건가요?


코드는 저 혼자 먼저 작성해 본 건데 답안과 많이 다르네요 ^^;

코드의 다른 부분은 검증을 아직 못해서 다른 오류가 있을 수 있으니 감안하고 봐주시면 감사하겠습니다.


스파르타 즉문즉답스파르타 즉문즉답


작성한 코드 및 에러 메세지

from collections import deque


def bfs(miro):
    
    N = len(miro), 
    M = len(miro[0])
    visited = []
    deq = deque([(0,0)])
    dist = 0
    
    dr = [-1, 1, 0, 0]
    dc = [0, 0, -1, 1]


    while deq:


        r,c = deq.popleft()
        visited.append((r,c))
        dist += 1


        if r == N-1 and c == M-1:
            return dist


        for i in range(4):
            nr = r + dr[i]
            nc = c + dc[i]
            if nr < 0 or nr >= N or nc < 0 or nc >= M or miro[nr][nc] != '1' or visited[nr][nc]:
                continue


            deq.appned((nr,nc))


    return -1


miro = [
    "11101",
    "10101",
    "10101",
    "11111"
]


# 문자열을 리스트로 변환하여 입력
miro = [list(row) for row in miro]


# 함수 실행 및 결과 출력
print(bfs(miro))

TypeError Traceback (most recent call last)

<ipython-input-3-33ab060e473c> in <cell line: 47>()

45

46 # 함수 실행 및 결과 출력

---> 47 print(bfs(miro))


<ipython-input-3-33ab060e473c> in bfs(miro)

18 dist += 1

19

---> 20 if r == N-1 and c == M-1:

21 return dist

22

TypeError: unsupported operand type(s) for -: 'tuple' and 'int'



오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.

Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴