SW Test/Programmers

[Programmers] Lv2. ๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜•(kotlin)

An effort will never betray ๐Ÿ˜Ž 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

 

๋ฐ˜์‘ํ˜•