개발하는 고양이 오이

26. [JAVA] 프로그래머스 코딩테스트 연습 Level.1 - 문자열 다루기 기본 / 5,6번 실패 해결 / 다른 사람의 풀이 본문

코딩테스트 - JAVA/프로그래머스 Programmers

26. [JAVA] 프로그래머스 코딩테스트 연습 Level.1 - 문자열 다루기 기본 / 5,6번 실패 해결 / 다른 사람의 풀이

Cucum 2022. 5. 9. 11:00

https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

 

프로그래머스 코딩테스트 연습 Level.1 - 문자열 다루기 기본 



풀이

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        
        if (s.length() == 4 || s.length() == 6) {
            char ch;
            for (int i = 0; i < s.length(); i++) {
                ch = s.charAt(i);

                if (Character.isLowerCase(ch) || Character.isUpperCase(ch)) {
                    return false;
                }
            }  
        }
        else {
            return false;
        }
        
        return answer;
    }
}

- Character.isLowerCase()

   = 입력 받은 인자가 영문 소문자 인지 여부를 판단하여 true 또는 false 값을 return.

 

- Character.isUpperCase()

   = 입력 받은 인자가 영문 대문자 인지 여부를 판단하여 true 또는 false 값을 return.

 


(풀이 실패 과정)

class Solution {
    public boolean solution(String s) {
        boolean answer = true;
        
        char ch;
        for (int i = 0; i < s.length(); i++) {
            ch = s.charAt(i);
            
            if (Character.isLowerCase(ch) || Character.isUpperCase(ch)) {
                return false;
            }
        }
        return answer;
    }
}

실패 이유

= 문제의 처음 조건 '문자열의 길이가 4 혹은 6이고-' 이부분을 체크해주지 않았음.

 


다른 사람의 풀이

NumberFormatException

= 숫자 형식 오류 (숫자 형이 아닌 문자열을 Integer로 바꾸려했을 때 나타나는 오류) 이용

 

String.matches()

= 특정 패턴의 문자열을 포함하는지 확인 가능

   숫자만 등장하는지 확인하는 정규식은 ^[0-9]*$