[프로그래머스/Kotlin]Level1 - 문자열을 정수로 바꾸기
2021. 3. 17. 15:01ㆍ프로그래머스/Kotlin | Level1
728x90
반응형
코딩테스트 연습 - 문자열을 정수로 바꾸기
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니
programmers.co.kr
문제 설명 |
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. |
제한 조건 |
|
입출력 예 |
|
예를 들어 str이 “1234”이면 1234를 반환하고, “-1234”이면 -1234를 반환 Str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없음 |
나의 풀이
String을 바로 Int로 바꿔주는 내장 함수 사용
Class Solution {
public int solution(String s) {
return Integer.parseInt(s);
}
}
Kotlin1 코드 정리
class Solution {
fun solution(s: String) = s.toInt()
}
내 풀이법과 방법은 같지만, 나는 바로 return을 한 반면 이 소스는 함수를 만들어 리턴함.
Kotlin2 코드 정리
1. 입력받은 문자열 s의 첫 글자가 -면 -1을 대입하고, 아니면 1을 대입함.
2. 문자열 s가 숫자이면 int()로 변경 후 sign에 곱함
class Solution {
fun solution(s: String) : Int { // -면 *(-1) : 음수, 아니면 *1 : 양수
val sign:Int = if(s.first() == '-') -1 else 1
return (s.filter { it. isDigit() }.toInt())*sign
}
}
* isDigit() : 숫자 판단
* filter : 리스트 중에서 조건에 맞는 값만 리턴
어차피 .toInt()를 쓸거면 왜 저렇게 복잡하게 돌아갔을까? -1과 1 여부는 toInt()가 알아서 해줄텐데... s.filter { it. isDigit() } 이 부분은 숫자가 아닌 문자가 들어올 경우 걸러내기 좋아 괜찮은 것 같다. 근데 이 줄만 있어도 괜찮을 것 같다. |
728x90
반응형
'프로그래머스 > Kotlin | Level1' 카테고리의 다른 글
[프로그래머스/Kotlin]Level1 - 문자열 다루기 기본 (0) | 2021.04.29 |
---|---|
[프로그래머스/Kotlin]Level1 - X만큼 간격이 있는 n개의 숫자 (0) | 2021.04.27 |
[프로그래머스/Kotlin]Level1 - 직사각형 별찍기 (0) | 2021.03.17 |
[프로그래머스/Kotlin]Level1 - 평균 구하기 (0) | 2021.03.16 |
[프로그래머스/Kotlin]Level1 - 짝수와 홀수 (0) | 2021.03.16 |