Notice
Recent Posts
Recent Comments
Link
개발 공부~
[SWEA D2] 1954. 달팽이 숫자.py 본문
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제
달팽이는 1부터 N*N까지의 숫자가 시계방향으로 이루어져 있다.
다음과 같이 정수 N을 입력 받아 N크기의 달팽이를 출력하시오.
- 제약사항
- 달팽이의 크기 N은 1 이상 10 이하의 정수이다. (1 ≤ N ≤ 10)
- 입력각 테스트 케이스에는 N이 주어진다.
- 가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
- 출력(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
- 각 줄은 '#t'로 시작하고, 다음 줄부터 빈칸을 사이에 두고 달팽이 숫자를 출력한다.
ex
N이 3일 경우
N이 4일 경우,
Solution
오 -> 아래 -> 왼 -> 위의 순서로 이동해야함
dx =[1,0,-1,0] dy=[0,1,0,-1] dr=(dr+1)%4 nx = x + dx[dr] ny = y + dy[dr]
T = int(input())
for tc in range(1, T + 1):
n = int(input())
answer = [ [0] *n for _ in range(n)]
dx =[1,0,-1,0]
dy=[0,1,0,-1]
x,y =0,0
dr =0
for i in range(1,n*n+1):
answer[y][x] = i
nx = x+dx[dr]
ny = y+dy[dr]
if 0<=nx<n and 0<=ny<n and answer[ny][nx]==0:
x, y = nx,ny
else:
dr=(dr+1)%4
nx = x + dx[dr]
ny = y + dy[dr]
x, y = nx, ny
print(f'#{tc}')
for i in answer:
print(*i)
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA D2] 1946. 간단한 압축 풀기.py (0) | 2024.07.04 |
---|---|
[SWEA D3] 1208. [S/W 문제해결 기본] 1일차 - Flatten (파이썬) (0) | 2024.07.04 |
[SWEA D2] 1959. 두 개의 숫자열 (1) | 2024.07.02 |
[SWEA D2] 1961. 숫자 배열 회전.py (1) | 2024.07.02 |
[SWEA D2] 1974. 스도쿠 검증.py (1) | 2024.07.02 |