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 |
댓글