SW Test/Programmers

[Programmers] Lv1. 바탕화면 정리(Kotlin)

An effort will never betray 😎 2023. 4. 26. 00:31
λ°˜μ‘ν˜•

문제

https://school.programmers.co.kr/learn/courses/30/lessons/161990

 

μ˜ˆμ‹œ

 

 

풀이

  • λ¨Όμ € 파일이 μžˆλŠ” 곳의 y, x μ’Œν‘œλ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.
  • μ’Œμƒλ‹¨μ˜ yμ’Œν‘œλŠ” νŒŒμΌλ“€μ˜ y κ°’λ“€ 쀑 κ°€μž₯ μ΅œμ†Ÿκ°’μ΄ λ©λ‹ˆλ‹€. 
  • μ’Œμƒλ‹¨μ˜ xμ’Œν‘œλ„ λ™μΌν•˜κ²Œ νŒŒμΌλ“€μ˜ x κ°’λ“€ 쀑 κ°€μž₯ μ΅œμ†Ÿκ°’μ΄ λ©λ‹ˆλ‹€.
  • μš°ν•˜λ‹¨μ˜ yμ’Œν‘œλŠ” νŒŒμΌλ“€μ˜ ( y + 1 ) κ°’λ“€ 쀑 κ°€μž₯ μ΅œλŒ“κ°’μ΄ λ©λ‹ˆλ‹€.
  • μš°ν•˜λ‹¨μ˜ xμ’Œν‘œλŠ” νŒŒμΌλ“€μ˜ ( x + 1 ) κ°’λ“€ 쀑 κ°€μž₯ μ΅œλŒ“κ°’μ΄ λ©λ‹ˆλ‹€.
import kotlin.math.*

class Solution {
    fun solution(wallpaper: Array<String>): IntArray =
        intArrayOf(Int.MAX_VALUE, Int.MAX_VALUE, Int.MIN_VALUE, Int.MIN_VALUE).apply{
            wallpaper.forEachIndexed{ index, paper -> 
                paper.forEachIndexed{ pindex, ch -> 
                    if(ch == '#'){
                        set(0, min(get(0), index))
                        set(1, min(get(1), pindex))
                        set(2, max(get(2), index + 1))
                        set(3, max(get(3), pindex + 1))
                    }
                }
            }
        }
}

 

 

μ°Έκ³ 

  • ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° 언어인 kotlin의 νŠΉμ„±μ— 맞게 ν•¨μˆ˜λ₯Ό 많이 읡히자 😽
  • intArrayOf의 set, get ν•¨μˆ˜
λ°˜μ‘ν˜•