def snail(i,j,dir,cnt): # i, j, 방향, 몇번 움직였는지 확인 while cnt < n*n: if 0 <= i + x[dir % 4] < n and 0 <= j + y[dir % 4] < n: # board 범위 안 넘어가는 조건 if board[i+x[dir%4]][j+y[dir%4]] == 0: # 다음 값에 방문한 적이 없다는 조건 i = i+x[dir%4] # i 변경 j = j+y[dir%4] # j 변경 cnt += 1 # 움직인 횟수 변경 board[i][j] = cnt # board값 변경 else: dir += 1 # 방향 변경 else: dir += 1 # 방향 변경 T = int(input()) x = [0,1,0,-1] y = [1,0,-1,0] for tc in range(1,1+T): n = int(input()) if n != 1: board = [[0]*n for _ in range(n)] board[0][0] = 1 # 시작점 snail(0,0,0,1) # i,j,방향,움직인 횟수(시작점 방문 가정) print('#{}'.format(tc)) for q in range(n): for w in range(n): print(board[q][w], end = ' ') print() else: print('#{}'.format(tc)) print(1)
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 외로운 문자 - PYTHON #10912 (0) | 2021.01.06 |
---|---|
[SWEA 코딩] 숫자 배열 회전 - PYTHON #1961 (0) | 2021.01.06 |
[SWEA 코딩] 파스칼의 삼각형 - PYTHON #2005 (0) | 2021.01.04 |
[SWEA 코딩] [모의 SW 역량테스트] 등산로 조성 - PYTHON #1949 (0) | 2020.12.22 |
[SWEA 코딩] [모의 SW 역량테스트] 활주로 건설 - PYTHON #4014 (0) | 2020.12.21 |