-
[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 } }
์ฐธ๊ณ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ kotlin์ ํน์ฑ์ ๋ง๊ฒ ํจ์๋ฅผ ๋ง์ด ์ตํ์ ๐ฝ
- https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.math/ceil.html
ceil - Kotlin Programming Language
kotlinlang.org
floor - Kotlin Programming Language
kotlinlang.org
๋ฐ์ํ'SW Test > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] Lv2. ํ๊ฒ ๋๋ฒ(kotlin) (0) 2022.08.07 [Programmers] Lv2. ๊ธฐ๋ฅ๊ฐ๋ฐ (kotlin) (0) 2022.08.07 [Programmers] Lv2. ์คํ์ฑํ ๋ฐฉ(kotlin) (0) 2022.07.31 [Programmers] Lv2. ๋ฌธ์์ด ์์ถ(kotlin) (0) 2022.07.28 [Programmers] Lv2. N-Queen(kotlin) (0) 2022.07.26