본문 바로가기
알고리즘/programmers

68645: 삼각 달팽이

by cjw.git 2021. 1. 6.

Link : programmers.co.kr/learn/courses/30/lessons/68645


1. 문제

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

 


2. 문제의 조건

  • 1 <= n <= 1,000

 


더보기

3. 문제 접근

  • 시간 복잡도

    추후 보강

 

  • 아이디어

    규칙을 찾아보면
    n = 4 일 때,
    4 3 2 1씩 턴이 꺽이는 것을 볼 수 있으며 방향은 (아래) (오른쪽) (왼쪽 위) 순서대로 변하는 것을 알 수 있습니다.

 


4. 풀이 방법

  • n * n의 2차원 list를 만들어줍니다.
  • 방향은 아래부터 시작합니다.
  • i은 n, n-1, n-2 ... 1까지 줄어들며 j는 i번 숫자를 넣습니다.
  • 만약 방향이 아래면 현재 위치의 y값을 증가시키고
    만약 방향이 오른쪽이면 x를 증가키시고
    만약 왼쪽 위면 x와 y를 감소시킵니다.
  • 방향이 끝나고 한번 더 치우쳐져 있는데 이 값을 잡아주셔야합니다.

 


5. 소스코드

 


 

cjw.git@gmail.com

'알고리즘 > programmers' 카테고리의 다른 글

42587: 프린터[스택/큐]  (0) 2021.01.09
12953: N개의 최소공배수  (0) 2021.01.06
49993: 스킬트리  (0) 2021.01.06
43162: 네트워크[DFS/BFS]  (0) 2021.01.06
42860: 조이스틱(그리디)  (0) 2021.01.06

댓글