- 그래프일 때는 dc, dr 사용하기. 다음에 갈 위치를 검사할 때는 nc, nr 사용하기.
int dir = 0;
int []di = {0, 1, 0, -1};
int []dj = {1, 0, -1, 0};
class Solution {
public int[][] solution(int n) {
int[][] answer = new int[n][n];
int i = 0;
int j = 0;
int dir = 0;
int []di = {0, 1, 0, -1};
int []dj = {1, 0, -1, 0};
int number = 1;
while(number<= n*n){
answer[i][j] = number++;
int ni = i + di[dir];
int nj = j + dj[dir];
if(ni < 0 || ni >= n || nj < 0 || nj >= n || answer[ni][nj] != 0){
dir = (dir + 1) % 4;
}
i += di[dir];
j += dj[dir];
}
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/181832
'코딩테스트 > Programmers' 카테고리의 다른 글
정사각형으로 만들기 (0) | 2025.01.23 |
---|---|
[프로그래머스] 전국 대회 선발 고사 (0) | 2025.01.23 |
[프로그래머스] 홀짝에 따라 다른 값 반환하기 (0) | 2025.01.22 |
[프로그래머스] 배열 만들기 2 (0) | 2025.01.22 |
[프로그래머스] 주사위 게임 3 (1) | 2025.01.22 |