Kotlin/코딩테스트
[프로그래머스] 겹치는 선분의 길이 - kotlin
깨노비
2023. 3. 10. 00:29
728x90
반응형
import kotlin.math.max
import kotlin.math.min
class Solution {
fun solution(lines: Array<IntArray>): Int {
var answer: Int = 0
val line1: IntArray = calLine(lines[0], lines[1])
val line2: IntArray = calLine(lines[1], lines[2])
val line3: IntArray = calLine(lines[0], lines[2])
val from: Int = minOf(line1[0], line2[0], line3[0])
val to: Int = maxOf(line1[1], line2[1], line3[1])
var status: Boolean = false
for (i in from..to) {
status = when (i) {
in line1[0]..line1[1],
in line2[0]..line2[1],
in line3[0]..line3[1] -> {
if (status) answer++
true
}
else -> false
}
}
return answer
}
fun calLine(line1: IntArray, line2: IntArray): IntArray {
val x = max(line1[0], line2[0])
val y = min(line1[1], line2[1])
return if (y > x) {
intArrayOf(x, y)
} else {
intArrayOf(101, -101)
}
}
}
728x90
반응형