728x90
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | import java.util.*; class Solution { private static int[] dr = {1, 0, -1}; private static int[] dc = {0, 1, -1}; public int[] solution(int n) { int[][] temp = new int[n][n]; int r = -1; int c = 0; int i = 0; int currVal = 1; boolean dirChanged = true; while(true){ int nr = r+dr[i]; int nc = c+dc[i]; // System.out.println(nr+" "+nc); if(0<=nr && nr<n && 0<=nc && nc<n && temp[nr][nc]==0){ r = nr; c = nc; temp[r][c] = currVal++; dirChanged = false; } else{ if(dirChanged){ break; } i = (i+1)%3; dirChanged = true; } } List<Integer> list = new ArrayList<>(); for(int k=0; k<n; k++){ for(int j=0; j<n; j++){ // System.out.print(temp[k][j]+" "); if(temp[k][j]!=0){ list.add(temp[k][j]); } else{ break; } } // System.out.println(); } int[] answer = new int[list.size()]; for(int k=0; k<list.size(); k++){ answer[k] = list.get(k); } return answer; } } | cs |
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][JAVA] 주식가격 (완전탐색) (0) | 2022.04.03 |
---|---|
[프로그래머스][JAVA] 영어 끝말잇기 (HashSet) (0) | 2022.04.03 |
[프로그래머스][JAVA] 2개 이하로 다른 비트 (비트마스크?) (0) | 2022.04.02 |
[프로그래머스][JAVA] [1차] 프렌즈4블록 (구현) (0) | 2022.04.02 |
[프로그래머스][JAVA] 피로도 (DFS) (0) | 2022.04.02 |