๐ ๋ฌธ์ ์ค๋ช
์์ ์ ์ n์ด ์ฃผ์ด์ก์ ๋,
1๋ถํฐ n^2๊น์ง์ ์ซ์๋ฅผ ์๊ณ๋ฐฉํฅ ๋์ ํ์ผ๋ก n x n ๋ฐฐ์ด์ ์ฑ์์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด n = 4๋ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฑ์์ ธ์ผ ํฉ๋๋ค:
๐ก ๋จผ์ ์ง์ ์จ๋ณด์์ต๋๋ค
๋ฌธ์ ๋ฅผ ์ฒ์ ๋ดค์ ๋ ์กฐ๊ธ ๋ง๋งํ์ง๋ง, ์ค์ ๋ก ์์ผ๋ก ๋ฐฐ์ด์ ๋ฐ๋ผ๊ฐ๋ฉฐ ์ธ๋ฑ์ค๋ฅผ ๊ทธ๋ ค๋ณด์์ต๋๋ค.
์์ฒ๋ผ ์๊ณ๋ฐฉํฅ์ผ๋ก ๋๋ฉด์ ํ ์นธ์ฉ ์ซ์๋ฅผ ์ฑ์ฐ๋ ํํ์
๋๋ค.
์ค๋ณตํด์ ๋ฐฉ๋ฌธํ์ง ์๋๋ก ๊ฒฝ๊ณ๋ฅผ ์ ์ ์ค์ฌ๊ฐ๋ฉด ๋๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
๐ง ๋ฌธ์ ํด๊ฒฐ ์ ๋ต
- ์๋จ(top), ํ๋จ(bottom), ์ข์ธก(left), ์ฐ์ธก(right) ๋ค ๊ฐ์ ๊ฒฝ๊ณ๊ฐ์ ์ ์ธ
- ํ์ฌ ์์น์์ ์๊ณ ๋ฐฉํฅ ์์๋๋ก ์ด๋:
- โก๏ธ ์ผ → ์ค (์๋จ)
- โฌ๏ธ ์ → ์๋ (์ฐ์ธก)
- โฌ ๏ธ ์ค → ์ผ (ํ๋จ)
- โฌ๏ธ ์๋ → ์ (์ข์ธก)
- ํ ๋ฐฉํฅ์ ๋ ๋๋ง๋ค ํด๋น ๋ฐฉํฅ์ ๊ฒฝ๊ณ๋ฅผ ์ขํ ๋๊ฐ
โ Java ์ฝ๋ ๊ตฌํ
class Solution {
public int[][] solution(int n) {
int[][] answer = new int[n][n];
int num = 1;
int top = 0, bottom = n - 1, left = 0, right = n - 1;
while (num <= n * n) {
// โก๏ธ ์ค๋ฅธ์ชฝ
for (int i = left; i <= right; i++) {
answer[top][i] = num++;
}
top++;
// โฌ๏ธ ์๋
for (int i = top; i <= bottom; i++) {
answer[i][right] = num++;
}
right--;
// โฌ
๏ธ ์ผ์ชฝ
for (int i = right; i >= left; i--) {
answer[bottom][i] = num++;
}
bottom--;
// โฌ๏ธ ์
for (int i = bottom; i >= top; i--) {
answer[i][left] = num++;
}
left++;
}
return answer;
}
}
โจ n = 4์ผ ๋ ๊ฒฐ๊ณผ ์ถ๋ ฅ
์ฝ๋๋ฅผ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ต๋๋ค:
์ ํํ ๋ด๊ฐ ๋ฉ๋ชจ์ฅ์ ์ ์๋ ์์๋๋ก ์ซ์๊ฐ ๋ฐฐ์น๋์ด ์์์ ํ์ธํ ์ ์์์ต๋๋ค.
์์ผ๋ก ์ง์ ์จ๋ณด๋ฉด์ ์ธ๋ฑ์ค ์์๋ฅผ ํ์
ํ ๊ฒ์ด ํฐ ๋์์ด ๋์์ต๋๋ค.
โ ๋ง๋ฌด๋ฆฌ & ๋๋ ์
- ๋์ ํ ๋ฌธ์ ๋ ๊ฒฝ๊ณ๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ๋ฉด ์ง๊ด์ ์ด๊ณ ๊น๋ํฉ๋๋ค.
- ๋ฌธ์ ๋ฅผ ์์ผ๋ก ํ์ด๋ณด๋ฉฐ ์ธ๋ฑ์ค๋ฅผ ์๊ฐํํ๋ ์ต๊ด์ ์๊ณ ๋ฆฌ์ฆ ํ์ด์ ํฐ ๋์์ด ๋ฉ๋๋ค.
- ์ดํ ์คํ์ด๋ด ๊ด๋ จ ๋ฌธ์ ๋ฅผ ์ ํ์ ๋๋ ์ด ๋ก์ง์ ์์ฉํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
'๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์ ์ฌ๊ฐํ์ผ๋ก ๋ง๋ค๊ธฐ - Programmers (0) | 2025.06.16 |
|---|---|
| [Java] ์กฐ๊ฑด์ ๋ง๊ฒ ์์ด ๋ณํํ๊ธฐ 3 - Programmers (0) | 2025.06.13 |
| ํ๋ก๊ทธ๋๋จธ์ค ๋ฐฐ์ด๋ง๋ค๊ธฐ 2 (0) | 2024.11.13 |