https://programmers.co.kr/learn/courses/30/lessons/68645
코딩테스트 연습 - 삼각 달팽이
5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11]
programmers.co.kr
규칙을 찾아서 구현하면 된다.
항상 아래 , 오른쪽, 왼쪽 위 방향으로 움직인다.
나의 풀이
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 |
댓글