CodingTest/SW Expert Academy

[ SW Expert Academy ] 1954. 달팽이 숫자

EEOOOO 2022. 11. 4. 17:50

아.. 나선형 문제 분명 풀어봤는데.. 

한 큐에 못 풀었다.. 쏘쌛..

 

그래도 한 번 해봤다고 힌트 슬쩍 보고 바로 구현 가능했다. 다음에 비슷한 문제 나오면 맞추길🙏 

 

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]
for test_case in range(1, T + 1):
    # ///////////////////////////////////////////////////////////////////////////////////
    
    n = int(input())
    snail = [[0] * n for _ in range(n)]
    x, y = 0, 0
    direction = 0
    for k in range(1, n*n+1):
        snail[x][y] = k
        
        if not (0 <= x + dx[direction] < n) or not (0 <= y + dy[direction] < n) or (snail[x + dx[direction]][y + dy[direction]] != 0):
        	direction = (direction+1)%4
        x += dx[direction]
        y += dy[direction]
    
    
    print('#{}'.format(test_case))
    for s in snail:
        print(" ".join(list(map(str, s))))
    
    # ///////////////////////////////////////////////////////////////////////////////////

 

약간 황당한 일은 3문제째인데 아직 출력 정확성 실패로 자꾸 오답처리 받은 뒤 수정하고나서야 pass받는 중이다 😑😶

 

저 마지막에 배열을 문자열 처리하는거

" ".join(배열)이 아니라 *배열 로 하면 더 깔끔한데 순간 잊었다. 리마인드하고 가기.