이 문제를 풀기 전 나는 여태까지 제한 조건이 내가 걸러내야 하는 조건인 줄 알고 코드를 짤 때 계속 제한 조건에 맞는 조건문을 작성했다.
class Solution {
fun solution(s: String): Int {
var answer = 0
var currentNumber = 0
var currentSign = 1
if (s[0] != '0') {
if (s[0] == '-') {
currentSign = -1
} else if (s[0] == '+') {
currentSign = 1
} else {
val digit = s[0].toString().toInt()
currentNumber = digit
}
for (i in 1 until s.length) {
val digit = s[i].toString().toInt()
currentNumber = currentNumber * 10 + digit
answer = currentNumber * currentSign
}
}
return answer
}
}
ㄴ> 그래서 이렇게 0으로 시작하면 실행되지 않을 조건... 첫 시작이 부호일 때 그걸 어떻게 정수로 처리할 것인지 등을 생각하며 코드를 작성해서 문제를 풀었다.
이번 문제가 조금 복잡한 문제인 줄 알고 다른 사람들의 정답 코드를 확인해 봤는데...
class Solution {
fun solution(s: String): Int {
return s.toInt()
}
}
ㄴ> 너무 쉬운 코드가 정답이었다. 이상해서 프로그래머스 문제 내용의 제한 조건에 대해 검색해 보았다.
제한 조건은 주어지는 값이 제한 조건의 범위 안에서 주어진다는 거지
우리가 직접 걸러내야 한다는게 아닙니다.
....................
......
..
여태까지 사서 고생하면서 문제를 풀었다... 앞으로는 제한 조건을 내가 걸러내려고 하지 않고 문제를 풀어야겠다.
'Kotlin 문법 및 연습 문제' 카테고리의 다른 글
(Kotlin) 나누어 떨어지는 숫자 (0) | 2024.03.07 |
---|---|
(Kotlin) 정수 제곱근 판별 (0) | 2024.03.05 |
(Kotlin) 하샤드 수 구하기 (0) | 2024.03.05 |
(Kotlin) 자연수를 뒤집어 배열로 만들기 (0) | 2024.03.04 |
(Kotlin) - 배열의 평균값 (0) | 2024.02.29 |