관리 메뉴

fatalite

프로그래머스 C++ 삼각 달팽이 본문

코딩 인터뷰/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;
}