프로그래머스 (방의 개수) 문제 질문(파이썬)

조회수 267회

문제 :

701
6  2
543

각 숫자가 해당 방위를 의미한다(8방위). 0~7까지의 난수로 되어 있는 리스트가 주어지면 그 성분에 입력된 방위에 따라 한 줄씩 선을 그리며 움직인다. 사방이 막히면 한 방으로 친다.


문제는 위와 같습니다. 제가 문제에서 발견한 법칙이 지나온 경로를 한 번 더 밟았을 때 방이 하나가 추가 된다는 것(단 중복된 자리를 이동할 시 추가되지 않음.) 입니다.

그에 따라 코드를 구현했으나 오류 일으켜 문제가 무엇인지 알고 싶습니다.

  • 접근법이 잘못 되었다면 어떤 부분에서 오류가 있었는가?
  • 코드 상에서 어떤 부분에서 오류가 있는가?
def solution(arrows):
    length=max(arrows.count(0),arrows.count(4),arrows.count(7),arrows.count(3),
            arrows.count(6),arrows.count(2),arrows.count(1),arrows.count(5))*2
    #count : 방의 갯수 loc : 선이 그려질 점판(2차원 배열)
    count=0
    loc=[[-1 for i in range(length)] for i in range(length)]
    column,row=length//2,length//2
    for i in arrows:
        print(count)
        if i==0: 
            if loc[row][column]!=loc[row-1][column] and loc[row-1][column]!=-1:
                loc[row][column],loc[row-1][column]=0,0
                count+=1
            else:
                loc[row][column],loc[row-1][column]=0,0
            row-=1
    #이하 생략
    return count

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)