728x90
[문제]
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
[참고]
자세한 설명이 필요하면 다음 유튜브를 참고하길 바란다.
https://www.youtube.com/watch?v=rw2gQg9x_EA
[배운 점]
di = [0, 1, 0, -1]
dj = [1, 0, -1, 0]
- 방향 설정
- ni = i + di[dr]; nj = i + dj[dr]; dr = (dr + 1) % 4; 와 같은 방식으로 그래프에서 이동할 수 있다.
[코드]
T = int(input()) # 테스트 케이스 개수
for tc in range(1, T + 1):
n = int(input())
# step 1. 이동 방향 확인 (우 하 좌 상)
di = [0, 1, 0, -1]
dj = [1, 0, -1, 0]
# step 2. 초기화 및 초기값 설정
i, j, dr, cnt = 0, 0, 0, 1
arr = [[0] * n for _ in range(n)]
arr[i][j] = cnt
cnt += 1
# step 3. 방향을 바꾸는 조건 확인
while cnt <= n * n:
ni = i + di[dr]
nj = j + dj[dr]
# 조건 - 범위 이내, arr 값이 0 인 경우
if 0 <= ni < n and 0 <= nj < n and arr[ni][nj] == 0:
i, j = ni, nj
arr[i][j] = cnt
cnt += 1
# step 4. 방향 바꾸기
else:
dr = (dr + 1) % 4
# 출력
print(f'#{tc}')
for lst in arr:
print(*lst)
반응형
'🚩 Coding Test > SWEA' 카테고리의 다른 글
[SWEA][Python] 5431 민석이의 과제 체크하기 (0) | 2024.05.18 |
---|---|
[SWEA][Python] 20019 회문의 회문 (0) | 2024.05.17 |
[SWEA][S/W 문제해결 기본][Python] 1230 암호문 3 (0) | 2024.05.15 |
[SWEA][S/W 문제해결 기본][Python] 1229 암호문 2 (1) | 2024.05.15 |
[SWEA][S/W 문제해결 기본][Python] 1228 암호문 1 (1) | 2024.05.15 |