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

[๋ฐฑ์ค€,c++] 1913๋ฒˆ - ๋‹ฌํŒฝ์ด

by ์•ˆ์ฃผํ˜• 2022. 3. 15.

๋ฌธ์ œ

 

1913๋ฒˆ: ๋‹ฌํŒฝ์ด

N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ํ‘œ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๊ฐ ์ค„์— N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ํ•œ ์นธ์”ฉ ๋„์–ด์„œ ์ถœ๋ ฅํ•˜๋ฉด ๋˜๋ฉฐ, ์ž๋ฆฟ์ˆ˜๋ฅผ ๋งž์ถœ ํ•„์š”๊ฐ€ ์—†๋‹ค. N+1๋ฒˆ์งธ ์ค„์—๋Š” ์ž…๋ ฅ๋ฐ›์€ ์ž์—ฐ์ˆ˜์˜ ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ์ •์ˆ˜๋ฅผ ํ•œ ์นธ ๋„์–ด์„œ

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int N,find; cin>>N>>find;
    
    int arr[1000][1000] = {0, };
    int x=0, y=0;
    int num = N*N;
    int down_up_cnt = N, right_left_cnt=N-1;
    
    for(int i=0; i<N*N; i++){
        switch(i%4){
            case 0: //์•„๋ž˜๋ฐฉํ–ฅ
                if(arr[x][y]!=0) break;
                for(int k=0; k<down_up_cnt; k++){
                    arr[x][y]=num;
                    num--;
                    x++;
                }
                x--;
                y++;
                down_up_cnt--;
                break;
                
            case 1: //์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅ
                if(arr[x][y]!=0) break;
                for(int k=0; k<right_left_cnt; k++){
                    arr[x][y]=num;
                    num--;
                    y++;
                }
                y--;
                x--;
                right_left_cnt--;
                break;
                
            case 2: //์œ„์ชฝ ๋ฐฉํ–ฅ
                if(arr[x][y]!=0) break;
                for(int k=0; k<down_up_cnt; k++){
                    arr[x][y]=num;
                    num--;
                    x--;
                }
                x++;
                y--;
                down_up_cnt--;
                break;
                
            case 3: //์™ผ์ชฝ ๋ฐฉํ–ฅ
                if(arr[x][y]!=0) break;
                for(int k=0; k<right_left_cnt; k++){
                    arr[x][y]=num;
                    num--;
                    y--;
                }
                y++;
                x++;
                right_left_cnt--;
                break;
        }
    }
    
    for(int i=0; i<N; i++){
        for(int k=0; k<N; k++){
            if(arr[i][k]==find) x=i+1, y = k+1;
            cout<<arr[i][k]<<' ';
        }
        cout<<'\n';
    }
    
    cout<<x<< ' '<<y;
}

 

ํ’€์ด(10๋ถ„)

๋‹ฌํŒฝ์ด ๋ฟŒ์…”!

 

1484 : 2์ฐจ์› ๋ฐฐ์—ด ๋‹ฌํŒฝ์ด(1)

๋ฌธ์ œ [๊ธฐ์ดˆ-๋ฐฐ์—ด์—ฐ์Šต] 2์ฐจ์› ๋ฐฐ์—ด ๋‹ฌํŒฝ์ด ์ฑ„์šฐ๊ธฐ 4-1 ๋‹ค์Œ๊ณผ ๊ฐ™์€ n*m ๋ฐฐ์—ด ๊ตฌ์กฐ๋ฅผ ์ถœ๋ ฅํ•ด๋ณด์ž. ์ž…๋ ฅ์ด 3 4์ธ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถœ๋ ฅํ•œ๋‹ค. 1 2 3 4 10 11 12 5 9 8 7 6 ์ž…๋ ฅ์ด 4 5์ธ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ

dkswnkk.tistory.com

 

๋Œ“๊ธ€