https://school.programmers.co.kr/learn/courses/30/lessons/68645
def solution(n):
answer = []
x = -1
y = 0
arr = [[0] * n for _ in range(n)]
num = 1
for i in range(n):
for j in range(i,n):
if i % 3 == 0:
x += 1
elif i % 3 == 1:
y += 1
else:
x -= 1
y -= 1
arr[x][y] = num
num += 1
for i in arr:
for j in i:
if j != 0:
answer.append(j)
return answer
처음엔 각 라인 별로 규칙성을 찾았다.
즉 DP로 문제를 풀려고 시도했었다.
매 라인마다,
즉 n이 6라고 했을 때, 네 번째 라인은 5 18 19 20 12가 된다.
여기서 0번째와 -1번째의 합이 17이고 이것은 모든 라인에 동일하다. 라는 것을 이용하려 했고 2시간 동안 생각했지만 도무지 규칙성을 찾을 수가 없었다.
결국 검색을 했고....
그저 구현 문제라는 것을 깨달았다..ㅠㅠ
'알고리즘' 카테고리의 다른 글
프로그래머스)콜라츠 추측 (0) | 2023.02.10 |
---|---|
프로그래머스)제일 작은 수 제거하기 (0) | 2023.02.10 |
프로그래머스)신규 아이디 추천-python (0) | 2023.02.09 |
프로그래머스)[3차] 파일명 정렬 (0) | 2023.02.09 |
프로그래머스)두 정수 사이의 합-python (0) | 2023.02.08 |