Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
Archives
Today
Total
관리 메뉴

csct3434

[level 2] 삼각 달팽이 - 68645 본문

프로그래머스

[level 2] 삼각 달팽이 - 68645

csct3434 2024. 2. 29. 03:26

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

class Solution {

    public int[] solution(int n) {
        int total = n * (1 + n) / 2;
        int[][] array = new int[n][n];
        int[] answer = new int[n * (1 + n) / 2];

        int row = -1, col = 0, count = 0;
        while (count < total) {
            while (row + 1 < n && array[row + 1][col] == 0) {
                array[++row][col] = ++count;
            }

            while (col + 1 < n && array[row][col + 1] == 0) {
                array[row][++col] = ++count;
            }

            while ((row - 1 >= 0 && col - 1 >= 0) && array[row - 1][col - 1] == 0) {
                array[--row][--col] = ++count;
            }
        }

        count = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j <= i; j++) {
                answer[count++] = array[i][j];
            }
        }

        return answer;
    }
}