[BOJ] 1913

seonhyeongpak·2022년 1월 1일
0

python

목록 보기
1/7
import sys
sys.stdin.readline
n=int(input())
m=int(input())
board = [[0 for _ in range(n)] for _ in range(n)]
start=n**2
dx=[1,0,-1,0]
dy=[0,1,0,-1] #아래 오른쪽 위 왼쪽
pivot=0 # 4가지의 경우를 나누기 위한 기준
x=y=0
board[x][y]=start
start-=1
resultx,resulty=0,0
while (True):
    nx=x+dx[pivot] 
    ny=y+dy[pivot] # pivot값에 따라서 좌표를 움직인다.
    if(0<=nx<n and 0<=ny<n and not board[nx][ny]):
        board[nx][ny]=start
        if(start==m):
            resultx = nx
            resulty = ny
        x,y=nx,ny #좌표 저장
        start-=1 # 좌표 저장하고 값 -1
    else:
        pivot=(pivot+1)%4 # 움직이는 패턴이 있기 때문에 4로 나눈 나머지만큼 돌기
    if start==0:
        break # board 다 채움.
for i in board:
    print(*i) # 파이썬식 row 출력방법
print(resultx+1,resulty+1)
profile
모든 생각을 구현해내기 위해 노력하는 개발자

0개의 댓글