본문 바로가기

문제 풀이/Programmers

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

문제 출처 - Programmers

문제는 여기

 

코딩테스트 연습 - 문자열 다루기 기본

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

programmers.co.kr


[풀이]

1. 검사를 조금만 할 수 있도록 입력받은 문자열을 소문자로 변경해준다.

2. 문자열의 길이가 4 또는 6이 아니라면 false 맞다면 true를 준다.

3. 2. 의 결과가 true일 경우에 문자열에 알파벳이 있는지 체크해준다.

4. 알파벳이 포함되어 있다면 false 없다면 true를 준다.

5. 결과를 출력해준다.

[접근]

1. 문자열의 길이를 먼저 체크해주고 알파벳이 있는지 체크해서 결과에 따라 출력을 해주면 되겠다고 생각하였다.

[코드]

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        int len = s.length();
        
        // 소문자로 변경
        s = s.toLowerCase();
        
        // 문자열의 길이가 4 or 6인지 체크
        if (len != 4 && len != 6)
            answer = false;
        
        // 위에서 안맞으면 체크할 필요없으니까 조건으로 줌
        if (answer) {
            for (int i = 0; i < len; i++) {
                char c = s.charAt(i);
                
                // 알파벳이 있는지 체크
                if (c >= 'a' && c <= 'z') {
                    // 있으면 false로 변경 후 탈출
                    answer = false;
                    break;
                }
            }
        }
        
        return answer;
    }
}