파이썬2021. 4. 30. 10:32
728x90

* 파이썬 2차원 리스트 0으로 초기화

 #리스트 초기화 , list[세로][가로] arr = [[0 for col in range(m)] for row in range(n)]


* range 역방향
5,4,3,2,1 하고 싶으면 range(5,0,-1)

 for i in range(m,0,-1): #m ~1 역방향 출력


* 달팽이 직사각형 배열

with open('1.inp','r') as f: n,m=map(int,f.readline().split()) #n가로 m세로 #리스트 초기화 , list[세로][가로] arr = [[0 for col in range(m)] for row in range(n)] x,y=0,-1 num=1 #넣을 번호 add=1 #+1 or -1 for i in range(m,0,-1): #m ~1 역방향 출력 j= i +(n-m-1) for _ in range(i): y += add arr[x][y]=num num += 1 for _ in range(j): x += add arr[x][y]=num num += 1 add *= -1 #방향변경 #출력 확인 코드 for i in range(m+2): print(arr[i]) 

y=-1 로 두는 이유는 0부터 시작해야하기 때문이다.
x는 1부터 시작해야해서 x+=add 코드를 비슷하게 쓰려고 하면 y는 -1로 초기화 해준 후
y+=add를 통해서 0부터 시작할 수 있다.

x,y 한 번 씩 돈 후에는 add*=-1을 통해 방향을 변경한다.

반응형
Posted by mminky