• [LeetCode] 59. Spiral Matrix II

    2022. 1. 15.

    by. ํ•ด๋Š”์„ 

    ์ผ๋ช… ๋‹ฌํŒฝ์ด๋ฌธ์ œ! 1ํ•™๋…„๋•Œ ๋™์•„๋ฆฌ์—์„œ ํ’€์—ˆ๋˜ ๊ธฐ์–ต์ด ์ƒˆ๋ก์ƒˆ๋ก ๋‚ฌ๋‹ค. ์ด ๋ฌธ์ œ๋Š” n์˜ ์ˆ˜์— ๋”ฐ๋ผ nxn ๋ชจ์–‘์˜ matrix๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ ์•ˆ์— ๋‹ฌํŒฝ์ด ๊ป์งˆ ์ฒ˜๋Ÿผ ๋‚˜์„ ํ˜•์œผ๋กœ ์ˆซ์ž๋ฅผ ์ฑ„์›Œ์ค˜์•ผ ํ•œ๋‹ค.

     

    ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ์œผ๋‚˜, ์—ฌ๊ธฐ์„œ๋Š” ๊บฝ์—ฌ์•ผ ํ•˜๋Š” ๋ชจ์„œ๋ฆฌ ์ ์— ๋„๋‹ฌํ–ˆ๋Š”์ง€๋ฅผ ์กฐ๊ฑด์œผ๋กœ ๋„ฃ๊ณ , ๋„๋‹ฌํ–ˆ๋‹ค๋ฉด ๋ฐฉํ–ฅ์„ ๊บพ์–ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ’€์ดํ–ˆ๋‹ค.

    class Solution {
    public:
    vector<vector<int>> generateMatrix(int n) {
    vector<vector<int>> mat (n, vector<int>(n));
    int row = 0;
    int col = 0;
    int max = n-1;
    int direc = 0; // -> / v / <- / ^
    for (int i=0; i<n*n; i++){
    if (row == max && col == max || row == max && col == direc/4 || row == direc/4 && col == max || i!=0 && row == direc/4 + 1 && col == direc/4){
    direc++;
    if (direc%4 == 0) max--;
    }
    mat[row][col] = i + 1;
    if (direc%4 == 0) col++; //->
    else if (direc%4 == 1) row++; // v
    else if (direc%4 == 2) col--; // <-
    else if (direc%4 == 3) row--; // ^
    }
    return mat;
    }
    };

    profile
    ํ•ด๋Š”์„ 

    ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค

    '๐Ÿ“šSTUDY > ๐Ÿ‘€ coding test๋Œ€๋น„' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    ๋Œ“๊ธ€