Dev/Algorithm

간만의 알고리즘 공부 - 21 (문자열 다루기 기본)

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

제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

 

입출력 예

 

처음 내가 푼 방법

class Solution {
    fun solution(s: String): Boolean {
        val strList = s.toList()
        
        for (item in strList) {
            if (!item.isDigit()) {
                return false
            }
        }
        
        return true
    }
}

 

두번째 시도 방법

class Solution {
    fun solution(s: String): Boolean {
        return s.all { it.isDigit() }
    }
}

 

대체 뭐가 문제인지 감이 오지 않았습니다. 아무리 생각해봐도 문제를 잘 이해한것 같은데, 엄청 간단한것 같은데 왜 통과하지 않을까 계속 문제를 보았습니다. 그리고 문제에서 문자열 길이를 4 혹은 6이라고 언급하고 제한 사항에서는 문자열 길이가 1 ~ 8 이라고 해서 혹시 이걸 놓친걸까 하고 풀어보니..... 두둥...

 

세번째 시도 방법

class Solution {
    fun solution(s: String): Boolean {
        return if (s.length == 4 || s.length == 6) {
            s.all { it.isDigit() }
        } else {
            false
        }
    }
}

 

 

다른 사람들은 어떻게 풀었는지 봤는데 간단해 보이는것 같으나 시간이 많이 소요되는 것들이 보여서 기록합니다.

다른 사람 풀이

    fun solution(s: String) {
    	return (s.length == 4 || s.length == 6) && s.toIntOrNull() != null
    }

반응형