๋ฌธ์
์ฝ๋
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(int n) {
vector<int> answer;
int num = 1;
int move_cnt = n;
int arr[1001][1001]={0,};
int x=0, y=0;
for(int i=0; i<n*n; i++){
if(arr[x][y]!=0) break;
switch(i%4){
case 0: //์๋๋ก ์ด๋
for(int k=0; k<move_cnt; k++){
arr[x][y] = num;
num++;
x++;
}
x--;
y++;
move_cnt--;
break;
case 1: //์ฐ์ธก์ผ๋ก ์ด๋
for(int k=0; k<move_cnt; k++){
arr[x][y] = num;
num++;
y++;
}
y--;
x--;
move_cnt--;
break;
case 2: //์์ชฝ์ผ๋ก ์ด๋
for(int k=0; k<move_cnt; k++){
arr[x][y] = num;
num++;
x--;
}
x++;
y--;
move_cnt--;
break;
case 3: //์ข์ธก์ผ๋ก ์ด๋
x++;
int move_x = x, move_y = y;
while(true){
if(arr[move_x][move_y]!=0)break;
move_y--;
}
y = move_y+1;
break;
}
}
for(int i=0; i<1001; i++){
for(int k=0; k<1001; k++){
if(arr[i][k]!=0){
answer.push_back(arr[i][k]);
}
}
}
return answer;
}
ํ์ด(40๋ถ)
์์ ๊ฐ์ ๊ธฐ์ด์ ์ธ ๋ฌํฝ์ด ๋ฌธ์ ์์ ์กฐ๊ธ ๋ ์๊ฐ์ ํด์ผ ํ๋ ๋ฌธ์ ์์ต๋๋ค. ์ ์ฒ๋ผ ์ํ์ข์ฐ ์ด๋ ๋ฐฉํฅ๋ง๋ค ๊ตฌํํ์ ์ ์ข์ธก์ผ๋ก ๊ฐ ๋ ํนํ ์ ๊ฒฝ ์ธ ๋ถ๋ถ์ด ๋ง์๋๋ฐ ์๋ ์ด๋ฏธ์ง์ฒ๋ผ ์ข์ธก ์ด๋์ ์๋๋ก ํ ์นธ ์ด๋ ํ ์ ค ์ข์ธก ๋น์นธ์ผ๋ก ๊ฐ์ ๋ค์ ์์ํฉ๋๋ค. ์ด ๋ถ๋ถ๋ง ์ ๊ฒฝ ์จ ์ค๋ค๋ฉด ๋ค๋ฅธ ๋ถ๋ถ์ ํฌ๊ฒ ์ด๋ ต์ง ์์์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ํ๋ก๊ทธ๋๋จธ์ค(Programmers)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ฌ ํ ๋๋ฆฌ ํ์ ํ๊ธฐ(Level 2) (0) | 2022.04.08 |
---|---|
[c++] ํ๋ก๊ทธ๋๋จธ์ค - [1์ฐจ] ์บ์(Level 2) (0) | 2022.04.07 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฆฐํฐ(Level 2) (0) | 2022.03.23 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋(Level 2) (0) | 2022.03.04 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์์ด ๋๋ง์๊ธฐ(Level 2) (0) | 2022.03.04 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์ฝ์์ ๊ฐ์์ ๋ง์ (Level 1) (0) | 2022.02.13 |
๋๊ธ