https://programmers.co.kr/learn/courses/30/lessons/68645
규칙을 찾아서 구현하면 된다.
항상 아래 , 오른쪽, 왼쪽 위 방향으로 움직인다.
나의 풀이
def solution(n):
a = [['']*n for _ in range(n)]
check = 0
now = [-1,0]
num = 1
answer = []
for i in range(n,0,-1):
x, y = now
if check ==0: # down
now = [x+i,y]
for chunk in range(1,i+1):
a[x+chunk][y] = num
num+=1
check = 1
elif check ==1: # right:
now = [x,y+i]
for chunk in range(1,i+1):
a[x][y+chunk] = num
num+=1
check = 2
elif check ==2 : # upleft:
now = [x-i,y-i]
for chunk in range(1, i+1):
a[x-chunk][y-chunk] = num
num+=1
check = 0
for i in range(n):
for j in range(i+1):
answer.append(a[i][j])
return answer
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스] 교점에 별 만들기 (Python) (0) | 2021.11.03 |
---|---|
[프로그래머스] 영어 끝말잇기 (Python) (0) | 2021.11.02 |
[프로그래머스] 2개 이하로 다른 비트(Python) (0) | 2021.11.02 |
[프로그래머스] 프렌즈4블록(Python) (0) | 2021.11.02 |
[프로그래머스] 피로도 (Python) (0) | 2021.11.01 |
댓글