TIL

220515 TIL

Vince_rf 2022. 5. 15. 22:20

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

제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
입출력 예
s return
"a234" false
"1234" true

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        return answer;
    }
}


*솔루션

class Solution {
    public boolean solution(String s) {
        if(s.length() != 4 && s.length() != 6) return false;
        for (int i=0;i<s.length();i++) {
            if (s.charAt(i) < '0' || s.charAt(i) > '9') return false;
        }        
        return true;
    }
}
위는 구글에서 찾은 작동되는 코드이다.
한참을 찾다가 문제를 잘못 읽은것을 깨달았다.
길이가 4~6이 아니라 길이가 4 혹은 6...

class Solution {
public boolean solution(String s) {
boolean answer = true;

int length = s.length();
if(length != 4 && length != 6) {
return false;
}
for(int i=0; i<length; i++) {
char c = s.charAt(i);
if(c<'0' || c>'9') {
return false;
}
}
return answer;
}
}
위는 구글에서 찾아온 코드인데, 똑같이 테스트5번에서 에러가 난다.


* 내 코드
class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        int a = s.length();

        if (!(4 <= a && a <=6)){
            return false;
        }
        for (int i = 0; i < s.length(); i++){
            char b = s.charAt(i);
            if (!('0'<= b && b <= '9')){
                return false;
            }
        }
        return answer;
    }
}

*인텔리제이 찍어보는 코드
class test {
    public static void main(String[] args) {
        String s = "a1523";
        boolean answer = true;
        int a = s.length();

        if (!(4 <= a && a <=6)){
            answer = false;
        }
        for (int i = 0; i < s.length(); i++){
            char b = s.charAt(i);
            if (!('0'<= b && b <= '9')){
                answer = false;
            }

        }System.out.println(answer);
    }
}

* 내 코드 최종
class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        int a = s.length();

        if (4 != a && a != 6){
            return false;
        }
        for (int i = 0; i < s.length(); i++){
            char b = s.charAt(i);
            if (!('0'<= b && b <= '9')){
                return false;
            }
        }
        return answer;
    }
}

*인텔리제이 코드 최종
class test {
    public static void main(String[] args) {
        String s = "a1523";
        boolean answer = true;
        int a = s.length();

        if (4 != a && a !=6){
            answer = false;
        }
        for (int i = 0; i < s.length(); i++){
            char b = s.charAt(i);
            if (!('0'<= b && b <= '9')){
                answer = false;
            }

        }System.out.println(answer);
    }
}

 

**********요구사항을 잘 읽자....***********

'TIL' 카테고리의 다른 글

220516 TIL  (0) 2022.05.18
220515 WIL  (0) 2022.05.15
220514 TIL  (0) 2022.05.15
220513 TIL  (0) 2022.05.15
220512 TIL  (0) 2022.05.15