class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T;
T=sc.nextInt();
int [] r = {1,0,-1,0}; // 3, 6, 9, 12
int [] c= {0, 1, 0,-1};
int cur = 0;
for(int test_case = 1; test_case <= T; test_case++)
{
int n = sc.nextInt();
int[][] map = new int[n][n];
int x=0; int y=0;
for(int i=1; i<=n*n;i++){
map[x][y] = i;
if(i == n || i == n+(n-1) ||i == n+(n-1)+(n-1)){
// ๋ฐฉํฅ ํ๊ธฐ
cur++;
}
x+= c[cur];
y+= r[cur];
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
sb.append(map[i][j]).append(" ");
}
sb.append("\n");
}
System.out.printf("#%d\n%s",test_case, sb.toString());
}
}
}
์ค๋ต๋ ธํธ(ํธ๋ ๋์ ์ฌ๊ณ ๊ณผ์ ๋ฐ ๊ฐ์ ์ )
๊ผญ์ง์ ์์ ํ์ ์ํค๊ณ , ๋ธํ ๋ฐฐ์ด์ ์ด์ฉํด์ ๋ฐฉํฅ์ ํ์ ํ๊ฒ ํ๋ค. ๋ฌธ์ ๋ ๋ค ๊ผญ์ง์ ๋ฟ๋ง ์๋๋ผ ๋ฐฉํฅ์ ํธ๋ ์กฐ๊ฑด์ด ํ๋ฐํด๋ฅผ ๋๋๋ง๋ค ๋ฌ๋ผ์ง๋ค๋ ๊ฒ์ด๋ค. ์ด๊ฑธ ์ ๋๋ก ์์ฑํ๋ ค๋ฉด ์งํ๋ฐฉํฅ +1์ ๊ฐ์ด ์ฑ์์ ธ์์ผ๋ฉด ๋ฐฉํฅ์ ๋๋ ค๋ฒ๋ฆฌ๋ ๋ก์ง์ด ํ์ํ๋ค.
์ ๋ต์ฝ๋
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T;
T=sc.nextInt();
int [] r = {1,0,-1,0}; // 12, 3, 6, 9
int [] c= {0, 1, 0,-1};
for(int test_case = 1; test_case <= T; test_case++)
{
int cur = 0;
int n = sc.nextInt();
int[][] map = new int[n][n];
int x=0; int y=0;
for(int i=1; i<=n*n;i++){
map[x][y] = i;
if(x+c[cur%4] >= n || y+r[cur%4] >= n || x+c[cur%4] <0 || y+r[cur%4] <0){
// ๋ฐฉํฅ ํ๊ธฐ
cur++;
x+= c[cur%4];
y+= r[cur%4];
}else{
if(map[x+c[cur%4]][y+r[cur%4]] != 0){
cur++;
x+= c[cur%4];
y+= r[cur%4];
}else{
x+= c[cur%4];
y+= r[cur%4];
}
}
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
sb.append(map[i][j]).append(" ");
}
sb.append("\n");
}
System.out.printf("#%d\n%s",test_case, sb.toString());
}
}
}
์กฐ๊ฑด์ ๊น๋ค๋กญ๊ฒ ํํฐ๋งํด์ ๋ฐฉํฅ์ ํ์ ์์ผฐ๋ค.
IndexOutOfBound ์๋๊ฒ ์กฐ์ฌํ๋ฉด ์ฝ๊ฒ ํ๋ฆฐ๋ค. ๋ฐฐ์ด ํ์ ์ ๊ฒฝํํ ์ ์๋ ์ข์ ๋ฌธ์ ๊ฐ๋ค.
๋์์ด ๋๋ค๋ฉด ๋๊ธ์ด๋ ๊ณต๊ฐ ๋ฒํผ ํ ๋ฒ์ฉ ๋๋ฅด๊ณ ๊ฐ์ฃผ์ธ์! ๋ก๊ทธ์ธ ์ํด๋ ๋ฉ๋๋ค ^_^
๋ฐ์ํ
'OJ๐ผ > ์ค๋ต๋ ธํธ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][JAVA] 3085: ์ฌํ ๊ฒ์ (0) | 2024.01.06 |
---|---|
[BOJ][JAVA] 10431: ์ค์ธ์ฐ๊ธฐ (0) | 2024.01.04 |
[SWEA][JAVA] 1970. ์ฌ์ด ๊ฑฐ์ค๋ฆ๋(D2์์ ๋ฐ์ํ ์๊ฐ์ด๊ณผ) (0) | 2023.11.14 |
[SWEA][JAVA] ์ด์ฌ์์ ํ๋ฌธ ๊ฒ์ฌ (0) | 2023.11.05 |
[SWEA][JAVA] Base64 ๋์ฝ๋ฉ (0) | 2023.11.01 |