Algorithm ๐ง๐ป๐ป/๋ฐฑ์ค(BOJ)
[๋ฐฑ์ค,c++] 1913๋ฒ - ๋ฌํฝ์ด
dkswnkk
2022. 3. 15. 01:20
๋ฌธ์
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