[프로그래머스 삼각달팽이] 파이썬 풀이
문제
삼각형의 구조에서 달팽이를 반시계 방향으로 밖에서 안으로 옮직였을 때, 각 시간마다 달팽이가 있는 위치를 찾는 문제.
Keypoints
- 이차원배열을 할당해서 규칙에 맞게 값을 할당한다.
- 일차원 배열로 값을 옮긴다.
Solution
def solution(n):
N = n*(n+1)//2
cur = 1
boxes = [[0]*i for i in range(1, n+1)]
# n, n-2, n-4, ...
x,y = 0,0
dir = "down"
for cur in range(1, N+1):
boxes[y][x] = cur
if dir=="down":
if y+1>=n or (y+1<n and boxes[y+1][x]!=0):
dir="right"
x+=1
else:
y = y+1
elif dir=="up":
if y-1<0 or (y-1>=0 and boxes[y-1][x-1]!=0):
dir="down"
y+=1
else:
x-=1
y-=1
elif dir=="right":
if x+1>= len(boxes[y]) or (x+1<len(boxes[y]) and boxes[y][x+1]!=0):
dir="up"
x-=1
y-=1
else:
x+=1
answer = []
for y in range(n):
for x in range(len(boxes[y])):
answer.append(boxes[y][x])
return answer
References
'프로그래밍' 카테고리의 다른 글
[프로그래머스 주식 가격] 파이썬 풀이 (0) | 2021.02.11 |
---|---|
[프로그래머스 1차 추석트래픽] 파이썬 풀이 (0) | 2021.02.10 |
Windows Powershell Anaconda (base) 추가하기 (0) | 2021.02.08 |
[백준 1026 ] 보물 (0) | 2021.02.07 |
[백준 1120 ] 문자열 문제 풀이 (0) | 2021.02.06 |