KotlinAlgorithm#24 (POG 정수를 나선형으로 배치하기)

박채빈·2023년 7월 23일
0

KotlinAlgorithm

목록 보기
24/28
post-thumbnail

POG 정수를 나선형으로 배치하기

링크

코드

class Solution {
    fun solution(n: Int): Array<IntArray> {
        var answer: Array<IntArray> = arrayOf()
        val spiral = ArrayList<Int>()
        val direction = arrayOf(
            intArrayOf(0, 1),
            intArrayOf(1, 0),
            intArrayOf(0, -1),
            intArrayOf(-1, 0),
        )
        // answer 크기 설정
        (0 until n).forEach { _ -> answer += IntArray(n) }

		// input 4 -> (4, 3, 3, 2, 2, 1, 1)
        // input 5 -> (5, 4, 4, 3, 3, 2, 2, 1, 1)
        var input = n
        spiral.add(input)
        while (input > 1) {
            input -= 1
            spiral.add(input)
            spiral.add(input)
        }
        var count = 0
        var x = -1
        var y = 0

        (0 until   spiral.size).forEach {  i ->
            (0 until  spiral[i]).forEach { _ ->
                println(i)
                y += direction[i % 4][0]
                x += direction[i % 4][1]
                count += 1
                answer[y][x] = count
            }
        }

        return answer
    }
}

빙빙 돌리는 방법을 이해하는게 어려웠다.

profile
안드로이드 개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

좋은 글이네요. 공유해주셔서 감사합니다.

답글 달기