반응형

출처 : 

https://school.programmers.co.kr/learn/courses/30/lessons/181832

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

오른방향 -> 아래방향 -> 왼쪽 방향 -> 윗방향 -> 오른방향 .. 이런식으로 진행한다 

다음의 값이 0이 아닌 것을 체크하여 진행한다.

 

def solution(n):
    answer = [[0 for i in range(n)] for j in range(n)]
    num = 1
    i,j = 0,0
    dir = "right"
    while num < (n * n + 1):
        answer[i][j] = num
        # 오른쪽으로 진행 
        if dir == "right":
            if (j < n - 1) and (answer[i][j+1] == 0):
                j += 1
            else:
                dir = "down"
                i += 1
        elif dir == "down":
            if (i < n - 1) and (answer[i+1][j] == 0):
                i += 1
            else:
                dir = "left"
                j-= 1
        elif dir == "left":
            if (j > 0) and (answer[i][j-1] == 0):
                j -= 1
            else:
                dir = "up"
                i -= 1
        else:
            if (i > 0) and (answer[i-1][j] == 0):
                i -= 1
            else:
                dir = "right"
                j += 1
        num += 1
        #print(answer)
        
            
    return answer
반응형

'문제 > 프로그래머스' 카테고리의 다른 글

[1차] 프렌즈4블록  (1) 2022.10.01
피로도  (0) 2022.08.06
H-Index  (0) 2022.06.30
이중우선순위큐  (0) 2022.06.21
디스크 컨트롤러  (0) 2022.06.15

+ Recent posts