본문 바로가기

코딩테스트

[프로그래머스] 정수를 나선형으로 배치하기

[Lv.0] 정답율 45%

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

 

프로그래머스

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

programmers.co.kr

 

[풀이]

- 변하는 수는 총 4개 각각의 변수를 모두 만들어야 한다. 변수를 2개만 만들려고 해서 계속 실패함.

 

[코드]

def solution(n):
    
    answer = [[0]*n for _ in range(n)]
    count = 0
    min_row = min_col = 0
    max_row = max_col = n-1
    
    while count < n*n :
        
        for i in range(min_col, max_col + 1):
            count += 1  # 
            answer[min_row][i] = count
        min_row += 1

        for i in range(min_row, max_row + 1):
            count += 1  
            answer[i][max_col] = count
        max_col -= 1
        
        for i in range(max_col, min_col -1 , -1):
            count += 1  
            answer[max_row][i] = count
        max_row -= 1
        
        for i in range(max_row, min_row -1, -1):
            count += 1  
            answer[i][min_col] = count
        min_col += 1
        
    return answer