๐ ๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ์์ด๋์ด
๋ง์ฝ n์ด 4๋ผ๋ฉด ์๋๋ก 4์นธ -> ์ค๋ฅธ์ชฝ์ผ๋ก 3์นธ -> ์๋ก 2์นธ -> ์๋๋ก 1์นธ ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์์ง์ด๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
๋ํ ์๋๋ก ๋ด๋ ค๊ฐ๋๊ฒฝ์ฐ col์ ๋์ผํ๊ณ row ๋ง ๋ฌ๋ผ์ง๊ณ , ์ค๋ฅธ์ชฝ์ผ๋ก๋ง ์ด๋ํ๋ ๊ฒฝ์ฐ๋ col๋ง, ์์ชฝ์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ๋ง row, col์ ๋ชจ๋ ์ค์ฌ์ฃผ๋ฉด์ ์งํํ๋ฉด ๋ฉ๋๋ค.
ํ์ง๋ง ๋ง์ฝ ํฌ๋ฌธ์ค ๋ง์ง๋ง์ ์์ง์ด๋ฉด์ ํด๋น ์ํฅ์ผ๋ก ๋ค์ row, col์ด ๋ณํํ๊ธฐ ๋๋ฌธ์ ๋ง์ง๋ง ์นธ์ ๋ค์์นธ์ ์์ง์์ผ๋ก ์ด๋ํ์์ต๋๋ค.(์๋์ ์์น ๋ ๋ถ๋ถ์ด ๋์ผํ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.)
if(i<n) row++; else col++; |
if(i<n) col++; else { row--; col--; } |
if(i<n) { row--; col--; }else{ row++; } |
๐ ํ์ด
import java.util.*;
import java.io.*;
class Solution {
public int[] solution(int n) {
int[][] answer = new int[n][n];
int row = 0, col = 0;
int now = 1;
while(0<n){
//์๋๋ก ๋ด๋ ค๊ฐ๊ธฐ
for(int i=1;i<=n;i++){
answer[row][col] = now++;
if(i<n) row++;
else col++;
}
n--;
//์ผ์ชฝ ์ด๋
for(int i=1;i<=n;i++){
answer[row][col] = now++;
if(i<n) col++;
else {
row--;
col--;
}
}
n--;
//์๋ก ์ฌ๋ผ๊ฐ๊ธฐ
for(int i=1;i<=n;i++){
answer[row][col] = now++;
if(i<n) {
row--;
col--;
}else{
row++;
}
}
n--;
}
int[] ans = new int[(answer.length)*(answer.length+1)/2];
int index = 0;
for(int i=0;i<answer.length;i++){
for(int j=0;j<i+1;j++){
ans[index++] = answer[i][j];
}
}
return ans;
}
}
'programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA]388351 ์ ์ฐ๊ทผ๋ฌด์ (0) | 2025.05.24 |
---|---|
[JAVA]389480 ์์ ๋ฒ์ฃ (0) | 2025.05.24 |
[JAVA]389479 ์๋ฒ ์ฆ์ค ํ์ (0) | 2025.05.24 |
[JAVA]43164 ์ฌํ๊ฒฝ๋ก , DFS (0) | 2023.06.30 |