728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/68645
문제 설명
정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요.
풀이
Code
def solution(n):
# 1. 배열 생성
array = [[0] * i for i in range(1, n+1)]
# 2. 입력할 숫자 변수 생성
num = 1
# 3. x, y 생성
x, y = -1, 0
# 4.
for direction in range(n) :
for _ in range(direction, n) :
# 4-1. 아래로 내려가는 경우
if direction % 3 == 0 :
x += 1 # x 값 증가
# 4-2. 오른쪽으로 이동하는 경우
elif direction % 3 == 1 :
y += 1 # y 값 증가
# 4-3. 위로 올라가는 경우
else :
x -= 1; y -= 1 # x, y 값 감소
# 4-4. 해당 인덱스에 수 입력
array[x][y] = num
# 4-5. 숫자 변수 증가
num += 1
# 5. 결과 리턴
answer = []
for i in range(n) :
for j in range(len(array[i])) :
answer.append(array[i][j])
return answer
728x90
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[Python/Programmers] 야근 지수 (0) | 2023.08.27 |
---|---|
[Python/Programmers] 2개 이하로 다른 비트 (0) | 2023.08.27 |
[Python/Programmers] 2 x n 타일링 (0) | 2023.08.26 |
[Python/Programmers] 숫자 변환하기 (0) | 2023.08.26 |
[Python/Programmers] 시소 짝꿍 (0) | 2023.08.26 |