[프로그래머스] 문자열 다루기 기본

neoneoneo·2024년 2월 28일
0

kotlin

목록 보기
16/49
post-custom-banner

문제

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

나의 풀이

class Solution {
    fun solution(s: String): Boolean {
        var answer = true          
        if (s.length == 4 || s.length == 6) {                   
            for (i in 0..s.length-1) {
                if (s[i].toInt() !in 48..57) {
                    answer = false
                    break
                } else answer = true         
            }
        } else answer = false      
        return answer
    }
}
  • 주어지는 문자열의 크기를 먼저 검사하고, for 문으로 한 문자씩 돌면서 숫자인지를 판별했다.
  • 원래는 forEach문을 사용하고 싶었지만, 중간에 더이상 검사할 필요가 없는 경우가 있어서 for문으로 바꾸고 break를 넣어주었다.

고수의 풀이

class Solution {
    fun solution(s: String) = (s.length == 4 || s.length == 6) && s.toIntOrNull() != null
}
  • 문자열 s의 길이를 먼저 판단하여 조건을 충족하지 않으면 false,
  • .toIntOrNull()을 통해 문자열을 정수로 변환하고, 그 결과가 정수가 아니면(null이면) false,
  • 위 두 개의 조건을 && 연산자로 묶어서 최종 결과 처리하는 코드이다.

배운점

  • return 데이터 형이 Boolean이면 if나 for문 외에 논리 연산자만으로도 해결을 볼 수 있는 것 같다. 문제를 보는 관점을 넓혀준 좋은 문제.. 좋은 고수..!

[TIL-240228]

post-custom-banner

0개의 댓글