ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Programmers] Lv2. ๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜•(kotlin)
    SW Test/Programmers 2022. 8. 1. 01:50
    ๋ฐ˜์‘ํ˜•

    ๋ฌธ์ œ

    https://school.programmers.co.kr/learn/courses/30/lessons/62048?language=kotlin

     

     

    ์˜ˆ์‹œ

    https://school.programmers.co.kr/learn/courses/30/lessons/62048?language=kotlin

     

     

    ํ’€์ด

    • ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ตฌํ•œ ๋‹ค์Œ์— x์ถ•์œผ๋กœ ์ขŒํ‘œ๊ฐ€ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•  ๋•Œ์˜ ๋†’์ด ์ฐจ์ด๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์‚ฌ๊ฐํ˜•์˜ ๊ฐฏ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • answer๋Š” ์ „์ฒด ์‚ฌ๊ฐํ˜•์˜ ๊ฐฏ์ˆ˜์ด๊ณ  1๋ถ€ํ„ฐ w๊นŒ์ง€ ์ขŒํ‘œ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ x์ขŒํ‘œ์— ํ•ด๋‹นํ•˜๋Š” y์ขŒํ‘œ์˜ ์˜ฌ๋ฆผ ๊ฐ’์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  x์ขŒํ‘œ๋ณด๋‹ค 1์ž‘์€ ์ขŒํ‘œ์— ํ•ด๋‹นํ•˜๋Š” y์ขŒํ‘œ์˜ ๋‚ด๋ฆผ ๊ฐ’์„ ๊ตฌํ•œ ํ›„ ์ฐจ์ด๋ฅผ ๊ตฌํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
    • ์ฒ˜์Œ์—๋Š” ์•„๋ž˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ d ๋ผ๋Š” ๋ณ€์ˆ˜์— ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ตฌํ•œ ํ›„ x์ขŒํ‘œ๋ฅผ ๊ณฑํ•˜๋Š” ์‹์œผ๋กœ ํ•˜์˜€์ง€๋งŒ, ๋ถ€๋™์†Œ์ˆ˜์ ์˜ ์˜ค์ฐจ๋กœ ์ธํ•ด ํ‹€๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ๊ธฐ์šธ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํ•ด๋†“๋Š” ๊ฒƒ์ด ์•„๋‹Œ h*x์ขŒํ‘œ / w ๋กœ ๋ณ€๊ฒฝํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
    • ๋จผ์ € ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐ์„ ํ•˜๊ฒŒ ๋  ๋•Œ ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์œผ๋กœ ๋ฌด์‹œํ•  ๋งŒํผ์˜ ์˜ค์ฐจ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์˜ค์ฐจ์— x์ขŒํ‘œ๋ฅผ ๊ณฑํ•˜๊ฒŒ ๋˜์—ˆ์„ ๊ฒฝ์šฐ ์˜ค์ฐจ ๋˜ํ•œ x์ขŒํ‘œ ํฌ๊ธฐ๋งŒํผ ๊ณฑํ•ด์ง€๊ฒŒ ๋˜๊ณ  ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋„์˜ ์˜ค์ฐจ๊ฐ€ ์•„๋‹ˆ๊ฒŒ ๋˜์–ด ์›ํ•˜๋Š” ๊ฐ’์ด ์•ˆ๋‚˜์˜ค๋Š” ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
      ๋”ฐ๋ผ์„œ ๊ธฐ์šธ๊ธฐ๋ฅผ ๋จผ์ € ๊ตฌํ•˜์ง€ ์•Š๊ณ  ๊ณฑํ•˜๊ธฐ ์—ฐ์‚ฐ(์ •์ˆ˜ x ์ •์ˆ˜) ์„ ํ•œ ํ›„ ๋‚˜๋ˆ—์…ˆ์„ ํ•˜๊ฒŒ ๋˜๋ฉด 1๋ฒˆ์˜ ๋ฏธ๋ฏธํ•œ ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋‹ต์ด ๋ฉ๋‹ˆ๋‹ค.
    import kotlin.math.*
    
    class Solution {
        fun solution(w: Int, h: Int): Long {
            var answer: Long = w*h.toLong()
            val d = h.toDouble()/w
            
            (1..w).forEach{
                answer-= (ceil(h.toDouble()*it/w).toLong() - floor(h.toDouble()*(it-1)/w).toLong())
            }
     
            return answer
        }
    }

     

     

     

    ์ฐธ๊ณ 

     

    ceil - Kotlin Programming Language

     

    kotlinlang.org

     

    floor - Kotlin Programming Language

     

    kotlinlang.org

     

    ๋ฐ˜์‘ํ˜•
Designed by Tistory.