[TIL] 250828

๊น€์„ธํฌยท2025๋…„ 8์›” 28์ผ
post-thumbnail

โœ๏ธToday I Learned

๐Ÿ“… 2025-08-28

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํ–‰๋ ฌ ํ…Œ๋‘๋ฆฌ ํšŒ์ „ํ•˜๊ธฐ
  • ๋‚˜์ด์•„๊ฐ€๋ผ - ํ™”์—ผ ๋ฐœ์‚ฌ๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํ–‰๋ ฌ ํ…Œ๋‘๋ฆฌ ํšŒ์ „ํ•˜๊ธฐ

๋ฌธ์ œ ๋งํฌ
๋ฌธ์ œ ์„ค๋ช…
rows x columns ํฌ๊ธฐ์ธ ํ–‰๋ ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ–‰๋ ฌ์—๋Š” 1๋ถ€ํ„ฐ rows x columns๊นŒ์ง€์˜ ์ˆซ์ž๊ฐ€ ํ•œ ์ค„์”ฉ ์ˆœ์„œ๋Œ€๋กœ ์ ํ˜€์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ–‰๋ ฌ์—์„œ ์ง์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ๋ฒ”์œ„๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์„ ํƒํ•ด, ํ…Œ๋‘๋ฆฌ ๋ถ€๋ถ„์— ์žˆ๋Š” ์ˆซ์ž๋“ค์„ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „์‹œํ‚ค๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํšŒ์ „์€ (x1, y1, x2, y2)์ธ ์ •์ˆ˜ 4๊ฐœ๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ, x1 ํ–‰ y1 ์—ด๋ถ€ํ„ฐ x2 ํ–‰ y2 ์—ด๊นŒ์ง€์˜ ์˜์—ญ์— ํ•ด๋‹นํ•˜๋Š” ์ง์‚ฌ๊ฐํ˜•์—์„œ ํ…Œ๋‘๋ฆฌ์— ์žˆ๋Š” ์ˆซ์ž๋“ค์„ ํ•œ ์นธ์”ฉ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.

ํ–‰๋ ฌ์˜ ์„ธ๋กœ ๊ธธ์ด(ํ–‰ ๊ฐœ์ˆ˜) rows, ๊ฐ€๋กœ ๊ธธ์ด(์—ด ๊ฐœ์ˆ˜) columns, ๊ทธ๋ฆฌ๊ณ  ํšŒ์ „๋“ค์˜ ๋ชฉ๋ก queries๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ ํšŒ์ „๋“ค์„ ๋ฐฐ์—ด์— ์ ์šฉํ•œ ๋’ค, ๊ทธ ํšŒ์ „์— ์˜ํ•ด ์œ„์น˜๊ฐ€ ๋ฐ”๋€ ์ˆซ์ž๋“ค ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆซ์ž๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

ํ’€์ด

ํšŒ์ „์— ๋งž์ถฐ row, col ๊ฐ’์„ ์กฐ์ •ํ•˜๊ณ  ์ด์ „ ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ์ฐพ์€ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ answer์— ์ถ”๊ฐ€ํ–ˆ๋‹ค.

#include <vector>

using namespace std;

vector<int> solution(int rows, int columns, vector<vector<int>> queries) {
    vector<int> answer;
    vector<vector<int>> matrix(rows, vector<int>(columns,0));
    // ์ดˆ๊ธฐํ™”
    for(int i=0;i<rows; i++)
    {
        for(int j=0;j<columns; j++)
        {
            matrix[i][j] = i*columns + j+1;
        }   
    }
    
    for (vector<int>& v : queries)
    {
        int row = v[0] - 1;
        int col = v[1] - 1;
        int min = matrix[row][col];
        int prev, temp;
        prev = matrix[row][col];

        for (int i = 0; i < v[3] - v[1]; i++)
        {
            temp = matrix[row][col + 1];
            matrix[row][col + 1] = prev;
            if (temp < min) min = temp;
            prev = temp;
            col++;
        }
        for (int i = 0; i < v[2] - v[0]; i++)
        {
            temp = matrix[row+1][col];
            matrix[row + 1][col] = prev;
            if (temp < min) min = temp;
            prev = temp;
            row++;
        }
        for (int i = 0; i < v[3] - v[1]; i++)
        {
            temp = matrix[row][col-1];
            matrix[row][col - 1] = prev;
            if (temp < min) min = temp;
            prev = temp;
            col--;
        }
        for (int i = 0; i < v[2] - v[0]; i++)
        {
            temp = matrix[row-1][col];
            matrix[row - 1][col] = prev;
            if (temp < min) min = temp;
            prev = temp;
            row--;
        }
        answer.push_back(min);
    }
    return answer;
}

๋‚˜์ด์•„๊ฐ€๋ผ - ํ™”์—ผ ๋ฐœ์‚ฌ๊ธฐ

๋ถˆ, ์—ฐ๊ธฐ, ์ŠคํŒŒํฌ, ์ผ๋ ๊ฑฐ๋ฆฌ๋Š” ํšจ๊ณผ๋ฅผ ๋”ํ•œ ํ™”์—ผ ๋ฐœ์‚ฌ ์ดํŽ™ํŠธ๋ฅผ ๋‚˜์ด์•„๊ฐ€๋ผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค.

๋ฌด๊ธฐ๋ฅผ ๋“ค์—ˆ์„ ๋•Œ ๋‚˜์ด์•„๊ฐ€๋ผ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ถ™๋„๋ก BP_PickUp_Rifle์—์„œ ์Šคํฐํ–ˆ๋‹ค.


๐Ÿ’ก ๋А๋‚€ ์  (What I Felt)

๋‚˜์ด์•„๊ฐ€๋ผ ์ดํŽ™ํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ณธ ๊ฑด ์ฒ˜์Œ์ธ๋ฐ ํฅ๋ฏธ๋กœ์› ๋‹ค. ๋” ๋‹ค์–‘ํ•œ ์ดํŽ™ํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ๋‹ค.


์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํ–‰๋ ฌ ํ…Œ๋‘๋ฆฌ ํšŒ์ „ํ•˜๊ธฐ
์ถœ์ฒ˜: ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

0๊ฐœ์˜ ๋Œ“๊ธ€