Kotlin/코딩테스트

[프로그래머스] 바탕화면 정리 - kotlin

깨노비 2023. 3. 12. 21:48
728x90
반응형

코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다.

class Solution {
    fun solution(wallpaper: Array<String>): IntArray {
        var answer: IntArray = intArrayOf(-1, -1, -1, -1)

        wallpaper.forEachIndexed { index, s ->
            val firstIdx = s.indexOfFirst { c -> c == '#' }
            val lastIdx = s.indexOfLast { c -> c == '#' }

            if (firstIdx != -1) {
                // 시작점 x
                if (answer[0] == -1) answer[0] = index

                // 끝점 x
                answer[2] = index

                // 시작점 y
                if (answer[1] == -1 || answer[1] > firstIdx) answer[1] = firstIdx
            }

            if (lastIdx != -1) {
                // 끝점 y
                if (answer[3] == -1 || answer[3] < lastIdx) answer[3] = lastIdx
            }
        }
        answer[2] += 1
        answer[3] += 1

        return answer
    }
}
728x90
반응형