코딩 인터뷰/C++
프로그래머스 C++ 삼각 달팽이
fataliteforu
2024. 9. 28. 16:43
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(int n) {
int now = 1;
vector<vector<int>> snale = vector<vector<int>>();
// 2차원 배열
for(int i = 1 ; i <= n; i ++)
{
vector<int> line = vector<int>();
for(int j = 1; j <= i; j++)
{
line.push_back(-1);
}
snale.push_back(line);
}
for(int i = 0; i < n; i++)
{
if(i % 3 == 0)
{
for(int j = 0; j < n - i; j++)
{
snale[j+2*(i/3)][(i/3)] = now;
now++;
}
}
else if(i % 3 == 1)
{
for(int j = 0; j < n - i; j++)
{
snale[(n-1) - (i/3)][j+1 + (i/3)] = now;
now++;
}
}
else if(i % 3 == 2)
{
for(int j = 0; j < n - i; j++)
{
snale[(n-1) - (i/3) - j - 1 ][(n-1) - 2* (i/3) - j - 1 ] = now;
now++;
}
}
}
// 일자형으로 변환
vector<int> answer;
for(vector<int> line : snale)
{
for(int a : line)
{
answer.push_back(a);
}
}
return answer;
}