Level 0. 정수를 나선형으로 배치하기
인덱스 계산이 상당히 귀찮았던 문제였다.
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
vector<vector<int>> solution(int n)
{
vector<vector<int>> answer(n, vector<int>(n));
int num = 1;
int r = 0, c = -1;
for (int j = 0; j < n; ++j)
answer[r][++c] = num++;
while (true)
{
if (--n <= 0)
break;
for (int i = 0; i < n; ++i)
answer[++r][c] = num++;
for (int j = n; 0 < j; --j)
answer[r][--c] = num++;
if (--n <= 0)
break;
for (int i = n; 0 < i; --i)
answer[--r][c] = num++;
for (int j = 0; j < n; ++j)
answer[r][++c] = num++;
}
return answer;
}
'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 0. 전국 대회 선발 고사 (0) | 2023.05.04 |
---|---|
Level 0. 빈 배열에 추가, 삭제하기 (0) | 2023.05.04 |
Level 0. 배열 만들기 6 (0) | 2023.05.03 |
Level 0. 그림 확대 (0) | 2023.05.02 |
Level 0. 무작위로 K개의 수 뽑기 (0) | 2023.05.02 |