Skip to content

Latest commit

 

History

History
30 lines (25 loc) · 1.08 KB

풀이_삼각달팽이.md

File metadata and controls

30 lines (25 loc) · 1.08 KB

🐌 프로그래머스 삼각 달팽이

  • Date : 2020.10.31(토)
  • Time : 30분

문제

  • 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요.

코드 풀이

    for i in range(n):
        for j in range(i, n):
            if i % 3 == 0:
                y += 1
            elif i % 3 == 1:
                x += 1
            elif i % 3 == 2:
                y -= 1; x -= 1
            maps[y][x] = number
            number += 1

: 나머지가 0인 경우는 아래로 내려가는 경우, 나머지가 1인 경우는 오른쪽으로 이동하고, 나머지가 2인 경우는 대각선 위로 올라가는 경우이다.

result = [i for i in chain(*maps) if i != 0]

: 그리고 chain은 itertools 모듈에서 제공하는 함수이다. 리스트를 연결해준다.