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을 통해 방향을 변경한다.
반응형
'파이썬' 카테고리의 다른 글
[ Python ] 백준 2445 파이썬 (별찍기 - 8) (0) | 2021.05.26 |
---|---|
[ Python ] 코드업 1602, 1610, 1615, 1620 (3) | 2021.05.10 |
[ Python ] 반복 문자열 중 가장 긴 문자열 찾기 (2) | 2021.04.16 |
[ Python ] 6097 (0) | 2021.04.16 |
[ 미해결 ] 6096 (0) | 2021.04.16 |