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
반응형
'Kotlin > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 분수의 덧셈 - kotlin (0) | 2023.03.11 |
---|---|
[프로그래머스] 연속된 수의 합 - kotlin (0) | 2023.03.11 |
[프로그래머스] 안전지대 - kotlin (0) | 2023.03.10 |
[프로그래머스] 평행 - kotlin (0) | 2023.03.09 |
[프로그래머스] 옹알이 (1) - kotlin (0) | 2023.03.09 |