본문 바로가기
Algorithm/Kotlin

[프로그래머스 • 코틀린] 문자열 다루기 기본 # 12918

by 키윤 2023. 11. 7.

[프로그래머스 • 코틀린] (제목) # 12918

 

#12918

🎄 Question ?

https://school.programmers.co.kr/learn/courses/30/lessons/12918

class Solution {
    fun solution(s: String): Boolean {
        var answer = true
        return answer
    }
}

🧩 Thought Process

  1. toString으로 바꾸어주기
  2. 문자열의 크기만큼 for 문 돌리기
  3. if문 을 이용해서 모든 문자가 문자열인지 확인하기 (이때 아스키 코드 범위 이용!
  4.  

#첫 시도

class Solution {
    fun solution(s: String): Boolean {
        var answer = true
        var sString = s.toString()
        for (i in 0 until sString.toCharArray().size) {
            var sInt = sString[i].toInt()
            if (sInt <= 47 || sInt >= 58) {
                answer = false
                break
            }
        }
        return answer
    }
}

아니 테스트는 왜 이렇게 많은거야... 그 중에 4개만 실패한것도 좀 킹받는... 머가문제징...

class Solution {
    fun solution(s: String): Boolean {
        var answer = true
        var sString = s.toString()
        for (i in 0 until sString.toCharArray().size) {
            var sInt = sString[i].toInt()
            if ((sInt >= 65 && sInt <=90) || (sInt >= 97 && sInt <= 122)) {
                answer = false
                break
            }
        }
        return answer
    }
}

범위를 조금 더 정확하게 잡아봤는데 틀렸다.. (내일 조원들에게 물어봐야 겠다.)

...

아핫.. 문자열의 길이기 4 혹은 6이어야 한다는 추가 조건을 간과했다.. 데헷

 

🎀 Answer

class Solution {
    fun solution(s: String): Boolean {
        var answer = true
        var sString = s.toString()
        var sSize = sString.toCharArray().size
        if (sSize != 4 && sSize != 6) {
            answer = false
        } else {
            for (i in 0 until sSize) {
                var sInt = sString[i].toInt()
                if (sInt <= 57 && sInt >= 48) {
                    answer = true
                } else {
                    answer = false
                    break
                }
            
            }
        }

        return answer
    }
}

 

🎁 Result

🏆 Comment

오예

문제 잘 읽기

천천히 읽기

 그리고 && 이랑 || 잘 구분해서 사용하기 !!