๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 16926๋ฒˆ - ๋ฐฐ์—ด ๋Œ๋ฆฌ๊ธฐ1

by ์•ˆ์ฃผํ˜• 2022. 4. 4.

๋ฌธ์ œ

 

16926๋ฒˆ: ๋ฐฐ์—ด ๋Œ๋ฆฌ๊ธฐ 1

ํฌ๊ธฐ๊ฐ€ N×M์ธ ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ, ๋ฐฐ์—ด์„ ๋Œ๋ ค๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋ฐฐ์—ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ๋Œ๋ ค์•ผ ํ•œ๋‹ค. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5]

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
using namespace std;

int n, m, r;
int map[301][301];


int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    cin>>n>>m>>r;
    for(int i=0; i<n; i++){
        for(int j=0; j<m; j++){
            cin>>map[i][j];
        }
    }
    
    while(r--){
        int x1 = 0, y1 = 0;
        int x2 = 0, y2 = m-1;
        int x3 = n-1, y3 = m-1;
        int x4 = n-1, y4 = 0;
        
        while(x1<x4 && y1<y2){
            int temp = map[x1][y1];
            for(int i=y1; i<y2; i++){
                map[x1][i] = map[x1][i+1];
            }
            for(int i=x2; i<x3; i++){
                map[i][y2] = map[i+1][y2];
            }
            for(int i=y3; i>y4; i--){
                map[x3][i] = map[x3][i-1];
            }
            for(int i=x4; i>x1; i--){
                map[i][y4] = map[i-1][y4];
                
            }
            map[x1+1][y4] = temp;
            x1 += 1;
            y1 += 1;
            x2 += 1;
            y2 -= 1;
            x3 -= 1;
            y3 -= 1;
            x4 -= 1;
            y4 += 1;
        }
    }
    
    
    for(int i=0; i<n; i++){
        for(int j=0; j<m; j++){
            cout<<map[i][j]<<" ";
        }
        cout<<"\n";
    }
    
}

 

ํ’€์ด

์•„๋ž˜ ์ž…์ถœ๋ ฅ์„ ์˜ˆ๋กœ ๋“ค์–ด ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

4 4 2

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
  1. ๊ฐ ๋„ค ๊ฐ€์ง€ ๊ผญ์ง“์ ์„ ๋จผ์ € ๊ธฐ์ค€์ ์œผ๋กœ ์žก์•„์ค๋‹ˆ๋‹ค.
  2. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๊ผญ์ง“์  ๋งˆ๋‹ค for๋ฌธ์„ ๋Œ๋ ค์„œ ์ „๋ถ€ ์ขŒ์ธก์œผ๋กœ ์ด๋™์‹œ์ผœ์ฃผ๋Š”๋ฐ ๋งจ ์ฒ˜์Œ์˜ ๊ฒฝ์šฐ์—๋Š” ํšŒ์ „๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ง์ ‘ ์ €์žฅํ•œ temp๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. 
  3. ๊ทธ ํ›„ ๊ผญ์ง“์ ์˜ ์ขŒํ‘œ๋ฅผ ์•ˆ์ชฝ์œผ๋กœ ๊ฐฑ์‹ ์‹œ์ผœ ์ฃผ์–ด์„œ ๋‹ค์‹œ ์œ„ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
  4. ํšŒ์ „ ํšŸ์ˆ˜ R๋งŒํผ ์œ„ ์„ธ ๊ฐ€์ง€ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”๊นฅ์ชฝ ํšŒ์ „
์•ˆ์ชฝ ํšŒ์ „

 

๋Œ“๊ธ€