알고리즘/프로그래머스

문자열 다루기

가다파하 2020. 7. 26. 20:44

문제 : 

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

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.

입출력 예

"1234" true
a234 false

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

 

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

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

programmers.co.kr

나의 해답 

class CheckStr {
    public boolean solution(String s) {
        boolean answer = true;
        
		String reg = "^[0-9]*$";
		answer = Pattern.matches(reg, s);
        
        if(answer == true){
            if(s.length() == 4 || s.length() == 6){
                answer = true;
            }else{
                answer = false;
            }    
        }
        
        /*
        if(s.length() == 4 || s.length() == 6){
		  try {
            Integer.parseInt(s);
           
			}catch(Exception ex){
				answer =false;
			}
		 }
		 else{
			answer = false;
		 }
        */
        return answer;
		
    }
	
     public static void main(String[] args) {
		CheckStr checkStr = new CheckStr();
		System.out.println(checkStr.solution("a1234"));
	}	
}

 이 문제는 처음에 내가 문제를 잘못읽어 자릿수 비교 (4자리또는 6자리)조건이 하나 더 있는 줄 몰라서 이방법, 저방법으로 풀어보았다. 

근데 문제를 다시 읽어보니까, 자릿수 비교도 해야해서 추가하니 아주 금방 해결되서 허탈했다.

 

 제발 문제를 잘읽자~!