편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2022.05.29

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


    문제 :

    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
    
  • 프로필 LLLLCCJ님의 편집
    날짜2022.05.28

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


    문제 :

    701

    6 2

    543

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

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

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

    if) 접근법이 잘못 되었다면 어떤 부분에서 오류가 있었는가? else) 코드 상에서 어떤 부분에서 오류가 있는가?

    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