여름의 서재
[프로그래머스] 삼각 달팽이 (Python) 본문
728x90
📕 문제
https://programmers.co.kr/learn/courses/30/lessons/68645
💡 풀이법
1. 1부터 n^2까지 삼각형을 돌면서 숫자를 채워넣어야 한다.
2. 만약 n이 4라면 삼각형의 꼭대기에서 아래로 4번, 오른쪽으로 3번, 위로 2번, 아래로 1번 채워넣는다.
즉, 아래 n번 -> 오른쪽 n-1번 -> 위 n-2번 -> 아래 n-3번 -> 오른쪽 n-4번 -> .... ->1번
이런식으로 반복이 된다.
단, 위로 올라가는건 삼각형이기 때문에 열도 함께 앞으로 1씩 가야한다. 그래서 방향이 x=-1, y=-1이 된다.
dxy = [(1,0), (0,1), (-1,-1)]
def solution(n):
answer = []
matrix = [[0 for _ in range(n)] for _ in range(n)]
x, y = -1, 0
i = 1
temp = n
m = temp
while i < n*(n+1)//2+1:
if not m:
temp -= 1
m = temp
x, y = x + dxy[(n-temp)%3][0], y + dxy[(n-temp)%3][1]
matrix[x][y] = i
i += 1
m -=1
for i in range(n):
for j in range(n):
if matrix[i][j]:
answer.append(matrix[i][j])
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 2018 KAKAO BLIND RECRUITMENT_캐시 (Python) (0) | 2022.03.05 |
---|---|
[프로그래머스] 단속카메라 (Python) (0) | 2022.02.27 |
[프로그래머스] 광고 삽입 (Python) (0) | 2022.02.27 |
[프로그래머스] 징검다리 건너기 (Python) (0) | 2022.02.27 |
[프로그래머스] 주차 요금 계산 (파이썬) (0) | 2022.02.06 |
Comments