본문 바로가기
[프로그래머스 C++]/LEVEL 0

[프로그래머스 C++] 정수를 나선형으로 배치하기

by AKI(JUNI) 2024. 1. 30.

◈ 문제 설명


◈ 문제 설명 링크
코딩테스트 연습 - 정수를 나선형으로 배치하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


◈ 작성 코드

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(int n) 
{
    vector<vector<int>> answer(n, vector<int>(n,0));
    int num = 1;
    int sX = 0;
    int eX = n - 1;
    int sY = 0;
    int eY = n - 1;
    while (num <= n * n) 
    {
        for(int i = sY; i <= eY; i++)
        {
            answer[sX][i] = num++;
        }
        sX++;
        for(int j = sX; j <= eX; j++)
        {
            answer[j][eY] = num++;
        }
        eY--;
        for(int k = eY; k >= sY; k--)
        {
            answer[eX][k] = num++;
        }
        eX--;
        for(int l = eX; l >= sX; l--)
        {
            answer[l][sY] = num++;
        }
        sY++;
    }
    
    return answer;
}