알고리즘/프로그래머스

문자열 다루기 기본(JAVA)

mrban 2022. 1. 17. 20:04

1. 문제

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있다면 True를 리턴하고 아니라면 False를 리턴하는 함수를 만드시오. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

 

2. 제한
s는 길이 1 이상, 8 이하인 문자열입니다.
 
3. 정답
class Solution {
    public boolean solution(String s) {
        char [] temp = s.toCharArray();
        if (temp.length == 4 || temp.length == 6) {
            for (int i = 0; i < temp.length; i++) {
                if (temp[i] < '0' || temp[i] > '9') {
                    return false;
                }
            }
            return true;
        }
        else {
            return false;
        }
    }
}

4. 설명

4-1. String s의 요소 하나하나에 접근하기 쉽게 toCharArray()함수를 활용하여 s를 char[] 배열로 바꿔준다.

4-2. 만약 배열의 길이가 4 또는 6이면서 for문을 활용해 숫자가 아닌 문자가 하나라도 존재한다면 false를 return하고 끝낸다.

4-3. 반면에 배열의 길이가 4 또는 6이면서 요소들이 전부다 숫자라면 true를 return한다.

4-4. 처음부터 배열의 길이가 4또는 6이 아니라면 false를 return한다.

 

5. 참고

5-1. 배열의 길이가 4 또는 6인지부터 먼저 판별하여 아니라면 바로 false를 return하는 것이 요소들 하나하나를 검사하기 위해 for문부터 돌리는 것보다 효율적인 코드라고 생각했다.