728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181832
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
Java
class Solution {
public int[][] solution(int n) {
int[][] answer = new int[n][n];
// ์์๋๋ก ์ค๋ฅธ์ชฝ, ์๋, ์ผ์ชฝ, ์
int direction = 0;
int[] dx = new int[]{0,1,0,-1};
int[] dy = new int[]{1,0,-1,0};
int curNum = 1;
int row=0; int col=0;
while (true){
// ์ซ์๋ฅผ ์ฑ์๋ฃ๋๋ค.
answer[row][col] = curNum++;
if(curNum > n*n) break;
int nextRow = row + dx[direction%4];
int nextCol = col + dy[direction%4];
// ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ๊ฑฐ๋, ์ด๋ฏธ ์ซ์๊ฐ ์์ผ๋ฉด ๋ค์ ์์น๋ฅผ ๊ฐฑ์ ํด์ฃผ์ง ์๊ณ ๋ฐฉํฅ๋ง ๋ฐ๊ฟ์ค๋ค.
if(nextRow < 0 || nextRow >= n || nextCol<0 || nextCol >= n
|| answer[nextRow][nextCol] > 0){
direction++;
curNum--;
}else{
// ์ซ์๋ฅผ ์ฑ์ธ ๋ค์ ์์น๋ฅผ ๊ฐฑ์ ํ๋ค.
row = nextRow;
col = nextCol;
}
}
return answer;
}
}
728x90
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > ๊ตฌํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]2564๋ฒ: ๊ฒฝ๋น์ (0) | 2023.10.27 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ณต์ ์ฐ์ฑ (0) | 2023.09.18 |
[๋ฐฑ์ค]21921๋ฒ: ๋ธ๋ก๊ทธ (0) | 2023.08.11 |
[๋ฐฑ์ค]2304๋ฒ: ์ฐฝ๊ณ ๋ค๊ฐํ (0) | 2023.08.11 |
[๋ฐฑ์ค]14719๋ฒ: ๋น๋ฌผ (0) | 2023.08.01 |