알고리즘 노트
[프로그래머스] 정수를 나선형으로 배치하기
데구루_
2023. 12. 12. 10:42

주어진 행과 열의 수 만큼의 영역에서 나선형을 돌며 1씩 증가하면 됩니다.
위 내용으로 유추해볼 때 나선형의 특정 영역에서 연산이 처리되어야 할 겁니다.
아래 그림을 먼저 보시죠.

배열의 인덱스를 x와 y라고 지칭했을때, 첫번째 이동 경로인 1에서 2는 x는 그대로 두고 y가 증가합니다.
즉, [0, 0], [0, 1], [0, 2], [0, 3], [0, 4] 순으로 y가 증가하죠.
그리고 두번째 이동 경로인 2에서 3은 y는 그대로 두고 x가 증가합니다.
즉, [1, 4], [2, 4], [3, 4], [4, 4] 순으로 x가 증가하죠.
3에서 4는 1에서 2의 역순으로 y가 줄어들고, 4에서 1은 2에서 3의 역순으로 x가 감소합니다.
코드를 보면 다음과 같습니다.
n을 회전 기점으로 사용하기 때문에 지속적으로 -- 처리를 해줍니다.
