최종적으로 완성된 전체 코드는 다음과 같습니다.

     

    전체 코드

    3장/삼각_달팽이.java

    public class Solution {
        public int[] solution(int n) {
            int[][] triangle = new int[n][n];
            int v = 1;
            int x = 0;
            int y = 0;
    
            while (true) {
                // 아래로 이동
                while (true) {
                    triangle[y][x] = v++;
                    if (y + 1 == n || triangle[y + 1][x] != 0) break;
                    y += 1;
                }
                if (x + 1 == n || triangle[y][x + 1] != 0) break;
                x += 1;
    
                // 오른쪽으로 이동
                while (true) {
                    triangle[y][x] = v++;
                    if (x + 1 == n || triangle[y][x + 1] != 0) break;
                    x += 1;
                }
                if (triangle[y - 1][x - 1] != 0) break;
                x -= 1;
                y -= 1;
    
                // 왼쪽 위로 이동
                while (true) {
                    triangle[y][x] = v++;
                    if (triangle[y - 1][x - 1] != 0) break;
                    x -= 1;
                    y -= 1;
                }
                if (y + 1 == n || triangle[y + 1][x] != 0) break;
                y += 1;
            }
    
            int[] result = new int[v - 1];
            int index = 0;
            for (int i = 0; i < n; i++) {
                for (int j = 0; j <= i; j++) {
                    result[index++] = triangle[i][j];
                }
            }
    
            return result;
        }
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.