728x90
SMALL
double = null
+ , - , overflow , string
class ParseInt {
@Test
fun solution() {
val string: String = "a"
val num: String = "1"
val num2: String = "12345"
val minusNum: String = "-12345"
val plusNum: String = "+12345"
val zero: String = "0"
val double: String = "123.456"
val longInt: String = "12345555555555555"
assertEquals(parseInt(string), null)
assertEquals(parseInt(num), 1)
assertEquals(parseInt(num2), 12345)
assertEquals(parseInt(minusNum), -12345)
assertEquals(parseInt(plusNum), 12345)
assertEquals(parseInt(zero), 0)
assertEquals(parseInt(double), null)
assertEquals(parseInt(longInt), null)
}
private fun parseInt(s: String): Int? {
val char = s.toCharArray()
var offset = 1
var result = 0
char.map {
when (it) {
'+' -> {
offset = 1
}
'-' -> {
offset = -1
}
else -> {
if (it - '0' in 0..9) {
if (result >= Int.MAX_VALUE / 10) {
return null
}
result *= 10
result += (it - '0')
} else {
return null
}
}
}
}
return result * offset
}
}
728x90
LIST
'IT > 알고리즘' 카테고리의 다른 글
[백준] 6603번 로또 (0) | 2025.03.10 |
---|---|
[백준] 11048번 이동하기 (0) | 2025.01.06 |
[백준] 14502번 연구소 (0) | 2024.12.16 |
[백준] 16917번 양념 반 후라이드 반 (0) | 2024.12.11 |
[백준] 11651번 좌표정렬하기_2 (3) | 2024.12.09 |